在mysql c api中获取用户输入
如果我们必须使用c api将记录插入mysql数据库,那么一般代码如下在mysql c api中获取用户输入,mysql,c,api,Mysql,C,Api,如果我们必须使用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); } 但是,这里我们必须从代码本身输入记录 但是,我想输入来自直接用户输入的记录
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
有没有办法做到这一点?
请帮忙 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。MySQL教程说您可以这样做:
char *stat = "INSERT INTO images(id, data) VALUES('1', '%s')";
len = snprintf(query, sizeof(stat)+sizeof(chunk) , stat, chunk);
要以“适当”的方式进行,您应该使用事先准备好的语句。有关教程,请参见此处: