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

时间:2014-12-22 17:48:54

标签: mysql c

我想在mysql数据库上创建Inserts,包含as值,一些字符串,chars ......

这有效:

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中工作。

3 个答案:

答案 0 :(得分:0)

你需要连接两个"字符串"在将它们传递到图书馆之前。

使用预处理器:

#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的内容是在外部提供的,则后一种解决方案会引入安全问题。那么不要在生产代码中这样做。

答案 1 :(得分:0)

试试这个

com.myapps.shortcut-demo.search

答案 2 :(得分:-2)

试试这个:

char str[] = "Mercedes";

response = mysql_query("INSERT INTO cars (column1,column2,column3) VALUES 2,'str',57127)");

if(response){ finish_with_error(con); }