- 论坛徽章:
- 0
|
本帖最后由 Nathan2013 于 2013-07-17 16:12 编辑
我用codeblocks在linux下写了最简单的连接数据库执行语句代码,编译通过,SQL语句也绝对没错,但是代码走到mysql_query()就报段错误,跟踪是到mysql_send_query()和mysql_real_query()报段错误,实在是找不到什么原因,mysql也重装了还是无效,有遇到过类似情况并解决的朋友帮帮我吧,项目比较急,现在这个就是唯一的问题了....
错误信息是:program received signal SIGSEGV,Segmentation fault.In mysql_send_query() (user/lib64/mysql/libmysqlclient.so.16)
就是报这个,用终端运行的话就产生core文件段错误,查看core文件也是提示这个错误.代码是用来测试mysql的,如果OK才正式用到项目中,很基础的代码,应该没问题的
MYSQL mysql;
mysql_init(&mysql);
bool tes;
tes = mysql_real_connect(&mysql,"192.168.1.1","root","123","test",NULL,0,NULL);
char buf[512] = {0};
sprintf(buf,"select *from test");
int nRet = mysql_query(&mysql,buf);
if(nRet != 0)
{
int nErr = mysql_rollback(&mysql);
nRet = mysql_errno(&mysql);
}
int nErr = mysql_commit(&mysql);
int num = mysql_affected_rows(&mysql);
printf("%d rows affected",num);
tes返回值是true.
问题的原因找到了,是因为select语句执行失败,改为insert语句就正常执行,并且也能正常将数据插入数据库,现在问题是 为什么select语句会不能正常执行呢?语句本身不可能有问题的啊
|
|