如果我有这样的代码(不相关的事情,比如初始化连接和省略句柄):
MYSQL_RES *res;
MYSQL_ROW row;
mysql_query(mysql, "some select query");
res = mysql_use_result(mysql);
while (row = mysql_fetch_row(res)) {
MYSQL_RES *res2;
MYSQL_ROW row2;
mysql_query(mysql, "some other select query using an id from the first");
res2 = mysql_use_result(mysql);
/* ... */
mysql_free_result(res2);
}
mysql_free_result(res);每当我运行第二个mysql_query (在循环中)时,我都会得到错误
mysql: 2014: Commands out of sync; you can't run this command now如何在从一个select查询中提取行的同时运行另一个select查询?
发布于 2011-01-23 15:43:27
我向MySQL邮件列表发送了一封电子邮件。基本上,要做到这一点,我需要有两个独立的MySQL连接。谢谢,Shawn Green (来自Oracle)。
用于连接的mysql对象一次只能有一个活动的查询或结果。要使两组结果正常工作,您需要到MySQL服务器
的第二个独立连接
发布于 2011-01-23 17:43:06
真正的问题是:为什么需要两个循环?
创建一条返回您想要的所有内容的语句几乎总是更有效,而不是从外部语句中每行触发一条语句。
https://stackoverflow.com/questions/4734078
复制相似问题