我无法使用下面的代码。它使用的是普通的select或insert,但是当我尝试向它插入一个变量时,它没有工作。有人能告诉我这里出了什么事吗?
请注意,输出如下。
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
最佳答案
我没看到你通过mysql_real_connect
连接到数据库
也没有mysql_select_db
和mysql_exec_sql
呼叫。
这是给你的一个例子。
int main(int argc, char **argv)
{
MYSQL mysql;
char stmt_buf[100];
if (mysql_init(&mysql) == NULL) {
printf("Can not initialize");
exit(1);
}
if (!mysql_real_connect
(&mysql, "localhost", "USERNAME", "PASSWORD", NULL, 0, NULL, 0)) {
mysql_error(&mysql);
exit(1);
}
if (mysql_select_db(&mysql, "DATABASENAME")) {
mysql_error(&mysql);
exit(1);
}
sprintf(stmt_buf, "insert into test values ('%s')", "test");
if (mysql_exec_sql(&mysql, stmt_buf))
mysql_error(&mysql));
mysql_close(&mysql);
}
关于mysql - C语言中的MYSQL API-Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9446681/