mysql - 在 mysql 查询中插入字符串作为值

标签 mysql c

我想在 mysql 数据库上进行插入,具有值、一些字符串、字符...

这有效:

if (mysql_query(con, "INSERT INTO Cars VALUES(2,'Mercedes',57127)")) {
      finish_with_error(con);
  }

我怎样才能做这样的事情?

char str[]="Mercedes";
if (mysql_query(con, "INSERT INTO Cars VALUES(2,str,57127)")) {
      finish_with_error(con);
  }

在 C 语言中工作

最佳答案

您需要先连接两个“字符串”,然后再将它们传递到库中。

使用预处理器:

#define str "Mercedes"

...

if (mysql_query(con, "INSERT INTO Cars VALUES(2,"str",57127)")) {
  finish_with_error(con);
}

或者在运行时执行:

char str[] = "Mercedes";
char query_template[] = "INSERT INTO Cars VALUES(2,%s,57127)"

char query[sizeof str + sizeof query_template - 3];

sprintf(query, query_template, str);

if (mysql_query(con, query, )) {
  finish_with_error(con);
}

注意:如果str的内容是外部提供的,后一种解决方案会引入安全问题。那么不要在生产代码中执行此操作。

关于mysql - 在 mysql 查询中插入字符串作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607823/

相关文章:

mysql - MariaDB 显示列权限

php - 第二种情况mysql触发错误

php array - 为每个唯一的电子邮件地址发送一封电子邮件,将数据分组在一起

c静态库linux

c - strtok之间的函数调用?

c - 如何创建自己的数据包以通过 UDP 发送?

mysql - MySQL 是否按照写入的顺序执行查询?

java - mysql 加载以前的查询数据来呈现查询

c - scanf() 没有返回正确数量的参数

c - 获取字符串c