我已将这个问题分解为本质,但仍然遇到问题。
当我尝试使用 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 按预期输出
有任何想法吗?