我尝试执行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/