无法创建mySQL数据库

时间:2012-04-16 10:25:59

标签: mysql c

我是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错误?

2 个答案:

答案 0 :(得分:2)

  1. 您没有mysql_connect()mysql_real_connect()
  2. 您不会检查mysql_init()
  3. 的返回值

答案 1 :(得分:0)

它可能与您的问题无关,但文档说:

  

默认,mysql_query()和mysql_real_query()解释他们的   语句字符串参数作为要执行的单个语句,和   您根据语句是否生成一个来处理结果   结果集(一组行,对于SELECT)或受影响的行计数   (对于INSERT,UPDATE等)。

http://dev.mysql.com/doc/refman/5.5/en//c-api-multiple-queries.html

由于您只有一个语句,因此最简单的方法是删除尾随的分号。