【求助】新人,关于c++使用mysql的mysql_free_result,100分

yangctec 2016-09-20 01:16:57
表现:调用存储过程查询数据,返回数据量也相当小,几条数据。第一次执行mysql_real_query - mysql_store_result - mysql_free_result,能正常执行并且返回有效数据,第二次在mysql_real_query就返回了失败,错误代码1,错误内容是Error code 2014:Commands out of sync。

自己搜索了一些资料,发现大部分提示的是上一个mysql_res*没有被释放掉,于是我又返回到第一次请求结束的地方,尝试再次mysql_free_result同一个结果集,报错,说明我应该是成功释放了第一次的结果集的。而且现在在测试的情况下把代码几乎精简到了几句话,依然要出问题,现在也没有什么思路,希望各位大婶赐教。
下面是精简到最低,还要出错的代码
std::string str="call test_proc (0)";
int iErr = mysql_real_query(&m_con, str.c_str(), str.length());
if (iErr == 0)
{
MYSQL_RES* res = mysql_store_result(&m_con);
if (res)
{
mysql_free_result(res);
}
}
数据库链接的初始化是用的下面这句话
mysql_real_connect(&m_con, host.c_str(), user.c_str(), pwd.c_str(), db_name.c_str(), port, NULL, CLIENT_MULTI_STATEMENTS)
...全文
406 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老王爱上猫 2016-09-24
  • 打赏
  • 举报
回复
我一直都是这样用的没有出错, 你是不是没有mysql_close
yangctec 2016-09-22
  • 打赏
  • 举报
回复
再顶一下~~~~~~
yangctec 2016-09-20
  • 打赏
  • 举报
回复
大婶们,求助

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧