コマンドが同期していない: 原因と解決策の詳細
mysqli 経由で MySQL クエリを利用する PHP コードを実行しようとすると、次のような問題が発生する可能性があります。 「コマンドが同期していません。現在このコマンドを実行できません。」というエラーが発生します。このエラーは、データベース クエリの順次実行間の競合を示します。
提供された PHP コードでは、mysqli によるプリペアド ステートメントのバッファリングされていないクエリの使用が原因で、この問題が発生します。これは、常に最後に実行されたクエリの結果のみが利用可能であることを意味します。
このエラーを解決するには、次の 2 つのアプローチを取ることができます。
提供されたコードでは、最初のクエリの後に $stmt->store_result() を使用して結果をバッファできます。
if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; ... }
これらの解決策のいずれかを実装すると、コマンドが同期されなくなり、PHP コードが実行されるようになります。成功しました。
以上がPHP MySQLi コードで「コマンドが同期していない」エラーが発生するのはなぜですか? それらを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。