この問題を本質的に分解しましたが、まだ問題があります。
fetch_all を使用してストアド プロシージャの結果を取得しようとすると、期待どおりに結果が配列に返されますが、その後の mysqli 呼び出しで「command out of sync」エラーがスローされます。
ストアドプロシージャを単純化しようとさえしました...
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 の「コマンドが同期されていません。現在、このコマンドを実行できません」というメッセージが表示され、Fatal error: Call to a member function close() on a non-object がスローされます
$rows は期待どおりに出力されます
何か案は?