ホームページ > バックエンド開発 > PHPチュートリアル > MySQLi で「コマンドが同期していません」エラーが発生するのはなぜですか?

MySQLi で「コマンドが同期していません」エラーが発生するのはなぜですか?

Linda Hamilton
リリース: 2024-12-08 03:42:13
オリジナル
488 人が閲覧しました

Why am I Getting a

MySQLi で「コマンドが同期していません」エラーが発生するのはなぜですか?

MySQL クライアントでは新しいクエリの実行が許可されていません進行中のクエリからフェッチされる行がまだ残っています。 「コマンドが同期していない」の詳細については、一般的なエラーに関する MySQL ドキュメントを参照してください。

解決策:

mysqli_store_result() を使用して、すべての行をプリフェッチします。外側のクエリ。これにより、それらが MySQL クライアントにバッファリングされるため、サーバーはアプリが結果セット全体をフェッチしたと認識します。その後、バッファリングされた外部結果セットから行をフェッチするループ内であっても、さらにクエリを実行できます。

あるいは、完全な結果セットを PHP 配列として返す mysqli_result::fetch_all() を使用します。その後、その配列を反復処理できます。

ストアド プロシージャの特殊なケース:

ストアド プロシージャは、それぞれ独自の行セットを持つ複数の結果セットを返すことができます。したがって、mysqli_multi_query() を使用し、mysqli_next_result() が追加の結果セットを返さなくなるまでループする必要があります。これは、ストアド プロシージャの結果セットが 1 つしかない場合でも、MySQL プロトコルを満たすために必要です。

注:

ネストされたクエリは、階層を表すためによく使用されます。データですが、より単純なクエリを使用する代替方法の方が望ましい場合があります。クエリを容易にするために、データを別の方法で保存することを検討してください。

以上がMySQLi で「コマンドが同期していません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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