ホームページ > データベース > mysql チュートリアル > PHP MySQL クエリの「コマンドが同期していない」エラーを修正する方法は?

PHP MySQL クエリの「コマンドが同期していない」エラーを修正する方法は?

Mary-Kate Olsen
リリース: 2025-01-23 01:01:09
オリジナル
613 人が閲覧しました

How to Fix the

PHP MySQL クエリの「コマンドが同期していない」エラーのトラブルシューティング

PHP と MySQL を使用している場合、「コマンドが同期していません。現在このコマンドを実行できません」というイライラするエラーが発生することがあります。これは通常、非同期の性質を適切に処理せずに複数の MySQL クエリを連続して実行した場合に発生します。 中心的な問題は、mysqli クエリのデフォルトのバッファリングされていない動作にあります。

これに対処するには 2 つの効果的な解決策があります:

  1. 最初のクエリの結果を処理する: $con->query() を使用して最初のクエリを実行し、結果を配列に保存します。 後続の操作はこの配列を反復処理して、各アクションが独立して実行されるようにする必要があります。

  2. クエリ バッファリングを使用する: プリペアド ステートメント内で store_result() メソッドを使用します。これにより、mysqli はクエリ結果をバッファリングし、オンデマンドの行フェッチを回避して「コマンドが同期していない」問題を防ぎます。

クエリのバッファリングを示す例は次のとおりです。

<code class="language-php">$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ?%";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    $numRecords->store_result(); // Buffer the results
    $data = $con->query($countQuery);
    $rowcount = $data->num_rows;
    // Proceed with your application logic
}</code>
ログイン後にコピー

大規模なデータセットを扱う場合、クエリ バッファリングを有効にするとメモリ消費量が増加する可能性があることに注意してください。 データ量とアプリケーションの要件に最適な方法を選択してください。

以上がPHP MySQL クエリの「コマンドが同期していない」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート