繁体   English   中英

在mysql c api中从用户获取输入

[英]taking input from user in 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);
    }

但是,这里我们必须从代码本身输入记录。

但是,我想从直接用户输入中输入记录。 例如,将用户输入保存在一个“说”字符串变量中,然后使用该字符串变量将记录存储在数据库中。 即。 我想做这样的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);

为此,您应该使用准备好的语句。 参见此处的教程: http : //lgallardo.com/en/2011/06/23/sentencias-preparadas-de-mysql-en-c-ejemplo-completo/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM