mysql执行sql语句时有时会出现CR_COMMANDS_OUT_OF_SYNC错误(2014)
提示语为
commands out of sync; you can't run this command now
网上对此错误的描述很少,而且没有给出解决方法。
其实这是因为上一个sql执行返回了多个结果集,但没有把结果都取出来,就执行了新的sql语句,就会产生这个错误。
应在sql语句执行后
用mysql_store_result(&ninghao79);取出结果集,
然后用mysql_next_result(&ninghao79);检查是否有剩余结果集,
如果有就再用mysql_store_result(&ninghao79);把剩余结果集取出来。
这样就能解决CR_COMMANDS_OUT_OF_SYNC错误了。
最新修改:
经过上述修改,我的问题并没有解决,可能我遇到的问题更复杂,最后在多方测试才发现时因为在BEGIN开始事务后
没有COMMIT提交事务,导致此问题在开始时不会出现,在运行几次后才会出现,所以对于事务的处理,要小心,开始
事务后,一定的时间内回滚或者提交时有必要的。