与 fetch_all 一起使用时,存储过程导致 mysqli 出现问题

2024-04-08

我已经将这个问题分解到其本质,但仍然遇到问题。

当我尝试使用 fetch_all 获取存储过程的结果时,我得到的结果按预期返回到数组,但后续 mysqli 调用抛出“命令不同步”错误。

我什至尝试简化我的存储过程......

CREATE PROCEDURE testp()
BEGIN
   SELECT * FROM tbl
END

我把桌子弄小了,10行3列。

我使用以下 PHP

$query = "CALL testp()";
$result = $db->query($query);
$rows = $result->fetch_all(MYSQL_ASSOC);
$result->free();
print_r($rows);
$query = "SELECT * FROM tbl WHERE id = ?";
$stmt = $this->db->prepare($query);
echo $this->db->error;
$stmt->close();

Echo 的“命令不同步;您现在无法运行此命令” 并抛出 致命错误:在非对象上调用成员函数 close()

$rows 输出符合预期

有任何想法吗?


老实说,这实际上就是 mysqli 的工作原理! 事情以 2 批为一组发生,这意味着您需要在执行其他操作之前清除最后的结果。如果你不这样做 -> 错误!

您可以通过使用来实现next_result(),示例如下:

while($this->_mysqli->next_result());

..然后成功地继续您的代码。上面的示例适合在 fetch_assoc_ 进程运行之后返回数组之前。

(我知道这个问题是 3 个月前提出的,但晚总比不问好;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 fetch_all 一起使用时,存储过程导致 mysqli 出现问题 的相关文章

随机推荐

  • LsaOpenPolicy 在我的代码中抛出异常。为什么?

    我从新闻组帖子中得到了以下代码 奇怪的是 它在 Delphi 2010 中对我不起作用 LsaOpenPolicy 函数调用时抛出异常 function AddLogonAsAService ID pchar boolean const R
  • 是否可以将批量搜索请求发送到 Google 自定义搜索 API?

    我的应用程序超出了 Google 自定义搜索 API 的限制 在寻求优化我的搜索调用时 我想知道是否有办法批量发送到 API 的搜索请求 我有一些页面 每个用户搜索都会发出多个请求 并且希望将它们批处理为一个 API 调用 我环顾四周 但没
  • 在 React 中的按键上应用按钮“活动”样式

    我在 React Redux 中有一个鼓应用程序 它的功能齐全 但我希望能够在相应的按键按下时应用活动按钮样式 就像我物理单击按钮时一样 就目前情况而言 单击按钮会进行转换 但键入相应的键只会播放音频文件 而不会真正链接到按钮 有没有办法在
  • 如何以 RESTful 方式建模 CANCEL 操作?

    我们目前正在从我们的整体服务中争取较小的服务 我们的域与票务系统非常相似 我们决定开始域名的取消流程 我们的取消服务有一个简单的端点 Cancel 它接收票证的 ID 在内部 我们检索 id 对其执行一些与取消相关的操作 并更新存储中实体的
  • 使用 jquery 将字符串与数字分割[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有类似的字符串 1 test one 2 test two 3 test three 4 test four 5 test five
  • Xcode 中出现错误“未设置视图出口。”

    我在 Xcode 中遇到问题 每次我在模拟器中运行我的应用程序时 该应用程序都会在黑屏视图中停止 并且调试器会编写以下代码 2012 07 04 11 54 08 348 myApp 661 f803 由于以下原因终止应用程序 未捕获的异常
  • Laravel 5 - 未找到 Application::shutdown() 函数,是否有其他解决方案?

    出现致命错误 在 laravel 5 中调用未定义的方法 Illuminate Foundation Application shutdown 代码示例 App shutdown function do somthing 使用 Larave
  • 在进行 Rails asset:precompile 时如何运行一些初始化程序?

    背景 我有一个应用程序 最近更新到了 Rails 3 2 1 从 Rails 3 0 x 并重构了 JS 和 CSS 资源以利用新的资源管道 该应用程序托管在具有 Celadon Cedar 堆栈的 Heroku 上 应用程序配置 我将应用
  • EF4 仅代码映射继承

    我有以下型号 我想要ShiftRequest and MissionRequest在数据库中有一个表 public class RequestBase public int Id get set public DateTime Reques
  • golang:如何卸载已加载的“go插件”1.8

    go1 8开始 go支持创建和加载插件 但不支持卸载插件 插件是在运行时加载的模块 是否可以卸载模块 如果无法卸载模块 那么在应用程序级别卸载插件 使其不可用但仍在内存中的最佳方法是什么 Go 不支持卸载插件 但您可以按照您的建议禁用它 通
  • 如何将我的代理凭据传递给 SharePoint 客户端上下文对象...? (SharePoint 客户端对象模型)

    我正在编写一个使用客户端对象模型访问 SharePoint 网站的应用程序 并且我位于代理服务器后面 我打电话 ClientContext ExecuteQuery 并收到以下错误消息 远程服务器返回错误 407 需要代理身份验证 如何将我
  • 从特定键的嵌套数组行收集所有值[重复]

    这个问题在这里已经有答案了 需要创建一个列表 其中包含存储在特定键 product id 的数组行中的所有值 目前 对 bestsellers 变量执行 print r 会生成以下数组 Array 0 gt stdClass Object
  • 在 Linux 上调用 Python IDLE

    我正在尝试搭建Python开发环境 我在 Linux Mint 14 上运行 Python 2 7 3 我下载了 IDLE 并安装了它 它干净安装并且 Python 运行得很好 那么如何调用IDLE呢 我的路径中没有任何 IDLE whic
  • 如何运行使用 PyRun 读入 std::string 的 python 文件

    我正在将 Python 嵌入到我的 C 程序中 并且非常有效地使用了 PyRun SimpleString 但现在遇到了麻烦 我所做的是将 python py 文件加载到 std string 但现在运行它时遇到问题 PyRun Simpl
  • Git post-rebase 钩子

    有没有像 post rebase hook 这样的东西 我的目标是我想要一个脚本在之后执行git pull rebase使用命令 看来重写后挂钩可以完成这项工作
  • 领域驱动设计和聚合参考

    我正在设计领域模型 但有些东西似乎不太好 我从一个主要的聚合开始 它引用了其他聚合 而其他聚合也引用了更多聚合 我可以从主聚合开始遍历孔域模型 我看到的问题是我将在内存中保存聚合的所有实例 这是一个好的设计吗 我可以通过延迟加载解决内存问题
  • Postgres jsonb_set 多个嵌套字段

    我有一个带有 jsonb 列的数据库表 该列有一个实体 带有嵌套的子实体 假设我们有 SELECT jsonb set top nested leaf 1 top nested leaf 2 更新哪个作品就可以了top nested lea
  • SFSpeechRecognizer 的多个实例?

    我正在尝试运行多个实例SFSpeechRecognizer 不幸的是我总是收到这个错误 Utility AFAggregator logDictationFailedWithError Error Domain kAFAssistantEr
  • 循环遍历空文本框,直到文本框有数据

    我确信对此有一个简单的解决方案 但我没有想到 我有一个带有三个文本框的表单 在运行主代码之前 我想确保每个文本框中都有数据 我已将 hasData 初始化为变量 该变量将决定代码是否可以继续前进 我在 Do While 循环中评估 hasD
  • 与 fetch_all 一起使用时,存储过程导致 mysqli 出现问题

    我已经将这个问题分解到其本质 但仍然遇到问题 当我尝试使用 fetch all 获取存储过程的结果时 我得到的结果按预期返回到数组 但后续 mysqli 调用抛出 命令不同步 错误 我什至尝试简化我的存储过程 CREATE PROCEDUR