我是mySQL编程的新手,似乎遇到了一个非常基本的问题。
我有以下代码,但在“创建数据库”部分出现了分段错误。
MYSQL *s1;
MYSQL mysql_sense;
char strBuf[8192] = {0};
char DB_NAME[300] = "0_4_3";
mysql_init(&mysql_sense);
sprintf(strBuf, "CREATE DATABASE IF NOT EXISTS %s;", DB_NAME);
mysql_real_query(&mysql_sense, strBuf, strlen(strBuf)); // seg fault here
我试过
CREATE DATABASE IF NOT EXISTS 0_4_3
在实际的mySQL中,并没有任何错误。为什么我的代码中出现seg错误?
答案 0 :(得分:2)
mysql_connect()
或mysql_real_connect()
。mysql_init()
。答案 1 :(得分:0)
它可能与您的问题无关,但文档说:
默认,mysql_query()和mysql_real_query()解释他们的 语句字符串参数作为要执行的单个语句,和 您根据语句是否生成一个来处理结果 结果集(一组行,对于SELECT)或受影响的行计数 (对于INSERT,UPDATE等)。
http://dev.mysql.com/doc/refman/5.5/en//c-api-multiple-queries.html
由于您只有一个语句,因此最简单的方法是删除尾随的分号。