打开连接时用mysql_real_connect(),传递参数CLIENT_MULTI_STATEMENTS以支持多语句查询
每执行mysql_query()来插入数据后,调用以下函数来清空返回结果集,以避免2014错误
void clear_result(MYSQL* conn)
{
if(!conn)
return;
do
{
MYSQL_RES* res = mysql_store_result(conn);
mysql_free_result(res);
}
while(0==mysql_next_result(conn));
}但为什么一个查询里有三条insert into语句时,这个函数就会莫明其妙的崩掉,不明白
用gdb跟踪了好多遍,发现最后一遍循环时,调用mysql_next_result()后,conn这个结构里的数据全部都被破坏了
都是无效地址,请高手帮帮忙
每执行mysql_query()来插入数据后,调用以下函数来清空返回结果集,以避免2014错误
void clear_result(MYSQL* conn)
{
if(!conn)
return;
do
{
MYSQL_RES* res = mysql_store_result(conn);
mysql_free_result(res);
}
while(0==mysql_next_result(conn));
}但为什么一个查询里有三条insert into语句时,这个函数就会莫明其妙的崩掉,不明白
用gdb跟踪了好多遍,发现最后一遍循环时,调用mysql_next_result()后,conn这个结构里的数据全部都被破坏了
都是无效地址,请高手帮帮忙
解决方案 »
- mysql查询问题,总是报错,个人认为语句无错
- 内链接的表太大了,导致运行时内存溢出怎么办?
- 求教mysql一个存储过程的问题
- 求一条SELECT语句,有趣,常用,望高手解答
- 有那位高手知道为什么用select * from table_name where birth="841204" 和select count(*) from table_name where birth="841204"他们显示的记录条数不同 急!!!!
- 关于mysql和vc之间用c API连接的问题
- mysql在linux下安装问题
- 怎么我创建不了trigger,5.6版
- mysql查询缓存命中率多少适合开启Query_cache?
- 关于触发器的问题!马上给分!
- Truncated incorrect time value
- mysql 连接已被禁止
前者,无论条件是否为真,至少要执行一次,所以最后一次那个可能会完蛋。
你把while()置到前头试。
我用的mysql是5.0.15b版本,怀疑可能是个BUG
你用的beta版本?至少,,,应该用一个正式release的版本。我在5.1版上测了一下,没什么问题。这个看来应该是5.0.15b的一个bug.
我用的是这种:
insert into <table>(...) values(...), (...), (...), (...);
insert into <table>(...) values(...), (...), (...), (...);
insert into <table>(...) values(...), (...), (...), (...);这个BUG在5.0的release版本中也存在,很奇怪,为什么它的BUG列表中竟然找不到为了不依赖于这种特定版本的BUG,我决定不使用多语句查询了,免得增加软件安装与使用的麻烦
我测的就是你说的这种多条insert,";"分隔的情况。