我尝试执行mysql查询传递变量这是我的密码

char str[100] = "My String";

mysql_query(conn, printf("INSERT INTO table VALUES %s"), str);

我在编译过程中收到警告
warning: passing argument 2 of ‘mysql_query’ makes pointer from integer without a cast

我错过了什么?

最佳答案

你不能那样做printf()返回打印的字符数您必须在调用mysql_query()之前创建字符串:

char statement[512], *my_str = "MyString";
snprintf(statement, 512, "INSERT INTO table VALUES ('%s')", str);
mysql_query(conn, statement);

另外,在创建这些查询字符串时要小心如果无法确定结果字符串的长度,请不要使用类似于sprintf()的函数不要写在内存段的边界上。

关于mysql - 如何在mysql_query中传递变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8531760/

10-11 01:34