PHP: #171;Commands out of sync#187; if I mysqli::query() again after a call to a results-giving stored procedure(PHP:“命令不同步如果我在调用结果存储过程后再次使用 mysqli::query())
问题描述
我的数据库中有一个存储过程,它返回表中的所有记录:
I have a stored procedure in my db that returns all records in a table:
CREATE PROCEDURE showAll()
BEGIN
SELECT * FROM myTable;
END
SP 工作正常.但是,如果我在 php 脚本中调用它然后我再次尝试查询数据库,它总是失败:
The SP works just as expected. But, if I call it in a php script and then I try to query the database again, it always fail:
// $mysqli is a db connection
// first query:
if (!$t = $mysqli->query("call showAll()"))
die('Error in the 1st query');
while ($r = $t->fetch_row()) {
echo $r[0] . "<br>"; // this is ok
}
$t->free(); // EDIT (this doesn't help anyway)
// second query (does the same thing):
if (!$t = $mysqli->query("SELECT * from myTable"))
die('Error in the 2nd query'); // I always get this error
while ($r = $t->fetch_row()) {
echo $r[0] . "<br>";
}
值得注意的是,如果我交换两个查询(即我在最后调用存储过程),它可以正常工作而不会出现任何错误.在第二个查询之前关闭()结果没有帮助.一些提示?
Notable, if I swap the two queries (i.e. I call the stored procedure at the end) it works without any error. To close() the result before the second query doesn't help. Some hints?
mysqli::error() 是:«命令不同步;您现在无法运行此命令».
mysqli::error() is: «Commands out of sync; you can't run this command now».
推荐答案
mysqli.query 的 php.net/manual 条目的评论已更新,现在包含对此的答案.总而言之,在 $t->close() 之后调用 $mysqli->next_result().向 petrus.jvr 致敬!
The comments on the php.net/manual entry for mysqli.query have been updated, and now include an answer for this. To summarize, call $mysqli->next_result() after $t->close(). Kudos to petrus.jvr!
链接:http://www.php.net/manual/en/mysqli.query.php#102904
这篇关于PHP:“命令不同步"如果我在调用结果存储过程后再次使用 mysqli::query()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:PHP:“命令不同步"如果我在调用结果存储过程
基础教程推荐
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01