我无法得到下面的代码工作。它使用正常的选择或插入,但是当我尝试插入一个变量时,它不起作用。有人可以让我知道这里有什么问题吗?C中的MYSQL API - linux
请注意输出结果如下。
int main(int argc, char **argv)
{
MYSQL *conn;
char str[100] = "test";
conn = mysql_init(NULL);
char stmt_buf[100];
sprintf (stmt_buf, "insert into test values ('%s')", str);
printf("\n%s\n",stmt_buf);
mysql_query (conn, stmt_buf);
mysql_close(conn);
return 0;
}
~$./version
insert into test values ('test')
Segmentation fault
你应该通过GDB运行你的程序来找出它崩溃的地方。 'gdb。/ version' - >'run' – spencercw 2012-02-25 18:19:56
您是否尝试使用所有警告和调试信息(例如gcc -Wall -g')来编译代码,以便改进代码直至编译器未给出警告为止使用调试器(例如'gdb')? – 2012-02-25 18:21:02
我做了,但输出没有帮助,如下所示。程序收到信号SIGSEGV,分段故障。 0x00199634来自/usr/lib/libmysqlclient.so.16的mysql_send_query() – 2012-02-25 18:21:41