如果我们必须使用c api将记录插入到mysql数据库中,则一般代码如下
if (mysql_query(conn, "insert into empinfo values ('saikat banerjee')"))
{
printf("4Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}但是,在这里我们必须输入代码本身的记录。
但是,我想从直接用户输入中输入记录。例如,将用户输入保存在字符串变量中,然后使用该字符串变量将记录存储在数据库中。即。我想做像这样的char empname[100],然后,
if (mysql_query(conn, "insert into empinfo values (empname)"))
{
printf("4Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}但是,这是在表中存储NULL。
有没有办法做到这一点?请帮帮我!
发布于 2012-01-11 00:51:22
Mysql C(或其他) API不会进入这个范围,但stdio.h会进入。我建议您查看scanf和fread的文档。使用libreadline的其他要点(如果在linux上)。当然,mysql ( CLI命令)已经完成了所有这些工作,而且还做得更多。
然而,你问题的第二部分让我认为你的需求更深,至少你会想要做一些事情,比如:
sprintf(stmt, "insert into empinfo values ('%s')",empname)
if (mysql_query(conn, stmt)) ...不过,这是关于普通的C语言。
发布于 2012-01-11 00:52:08
MySQL教程说你应该这样做:
char *stat = "INSERT INTO images(id, data) VALUES('1', '%s')";
len = snprintf(query, sizeof(stat)+sizeof(chunk) , stat, chunk);要做到这一点,你应该使用准备好的语句。请看这里的教程:http://lgallardo.com/en/2011/06/23/sentencias-preparadas-de-mysql-en-c-ejemplo-completo/
https://stackoverflow.com/questions/8806941
复制相似问题