首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mysqli_query不工作在foreach循环中

PHP mysqli_query不工作在foreach循环中
EN

Stack Overflow用户
提问于 2017-10-03 22:26:54
回答 1查看 1K关注 0票数 2

我有一个foreach循环,它通过MySQL数据库中的表名数组运行,然后执行mysqli查询来重新索引表。

查询和循环看起来都很好,但是在一定数量的表之后,查询就停止工作了。

如果我只是简单地回显每个表名,那么它将显示所有这些表,这样我就知道循环中没有遗漏表,而且我可以看到前几个表正在被正确地重新索引。在大约50张桌子之后,它似乎停止工作了。

下面是循环:

代码语言:javascript
复制
foreach($tables as $table) {
    mysqli_multi_query($connect, "SET @newid=0; UPDATE $table SET ID=(@newid:=@newid+1) ORDER BY ID;");
}

是什么导致它的顶部停止工作,是mysql超时还是中断操作,因为有那么多的查询正在快速地连续运行?还有别的吗?

使用mysqli_error我得到:

命令不同步;您现在不能运行此命令

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-04 08:05:54

每当我在前面看到这个错误时,都是因为一个MySQL查询返回了多个结果集,其中一些结果集仍然是不取的。这在使用存储过程时也很常见。要诊断这个问题,您可以在循环的末尾放一行如下所示,以确保在尝试运行另一个查询之前获取所有挂起的结果集:

代码语言:javascript
复制
while(mysqli_more_results($Conn)) mysqli_next_result($Conn);

(请记住将连接$Conn更改为您的任何名称)。以下是几个指向更多信息和示例的链接。

http://php.net/manual/en/mysqli.more-results.php result.asp

致以敬意,

詹姆斯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46554341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档