在mysql c api中获取用户输入

在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); } 但是,这里我们必须从代码本身输入记录 但是,我想输入来自直接用户输入的记录

如果我们必须使用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

有没有办法做到这一点? 请帮忙

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);
要以“适当”的方式进行,您应该使用事先准备好的语句。有关教程,请参见此处: