ホームページ >バックエンド開発 >PHPチュートリアル >MySQL クエリを使用した PHP で「コマンドが同期していない」エラーが発生するのはなぜですか?
MySQL クエリを使用した PHP コードでの「コマンドが同期していない」エラー
mysqli を使用して複数の MySQL クエリを含む PHP スクリプトを実行すると、 「コマンドが同期していません。現在このコマンドを実行できません。」というエラーが発生する可能性があります。この問題は、前のクエリの結果を取得して処理する前、または MySQL サーバーのクエリ コマンドのキャッシュをクリアする前に、後続のクエリが試行された場合に発生します。
質問で提供されているコードは 2 つのクエリを実行します。1 つはレコードをカウントするためのもので、もう 1 つはクエリです。検索文字列に基づいて行を取得します。ただし、最初のクエリの結果がフェッチされる前に、2 番目のクエリが実行されます。これにより、「非同期」エラーが発生します。
エラーの原因
考えられる解決策
例
$stmt->store_result():
<?php $con = mysqli_connect("localhost", "user", "password", "db"); $brand ="o"; $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; $con->query("SET NAMES 'utf8'"); if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; }を使用して最初のクエリの結果をバッファリングする例を次に示します。
以上がMySQL クエリを使用した PHP で「コマンドが同期していない」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。