1.官方说明
http://dev.mysql.com/doc/refman/5.7/en/commands-out-of-sync.html
2.遇到此问题的现象:
在使用mysql_query执行多条语句时,发现虽然此函数成功执行了,但数据库中并没发现执行后的新数据,以及多次以后,会发现执行多条语句会出错。
原因:是由于mysql_res*的没释放.
MYSQL_RES * pRes;
int nError = mysql_query(m_pConn, strSQL);
do
{
pRes = mysql_use_result(m_pConn);
mysql_free_result(pRes);
} while (!mysql_next_result(m_pConn));
strSQL中是含有N条sql语句的字符串,在执行mysql_query后,会对应的出现N个MYSQL_RES *,通过上述代码将所有的结果集释放掉即可。