このエラーは、複数のクエリを同時に実行しようとすると発生しますPDO::ATTR_EMULATE_PREPARES を false に設定して PDO を使用しているとき。これは、以前のバッファリングされていないクエリがすべて取得されるまで、MySQL サーバーが追加のクエリの実行を処理できないことを示しています。
PDO のデフォルトの動作は、プリペアド ステートメントをバッファリングされていないクエリに変換することでエミュレートすることです。 。バッファリングされていないクエリはすぐに実行され、結果はクライアント側に保存されません。これにより、大規模な結果セットをメモリ効率よく処理できるようになります。
ただし、このモードで動作する場合、MySQL にはバッファリングされていないクエリの進行中に後続のクエリを実行できないという制限が課されます。これがエラー 2014 の原因です。
このエラーを解決するには、いくつかの方法があります:
最適なパフォーマンスと効率を実現するには、大規模な結果セットを処理する場合はバッファ付きクエリを使用することをお勧めします。または同時実行性が重要な場合。サーバー リソースを解放するには、バッファリングされていないクエリを実行するたびに FetchAll() または closeCursor() を使用する必要があります。さらに、MySQL の接続性とパフォーマンスを向上させるために、mysqlnd を使用することを強くお勧めします。
以上がPDO と同時にクエリを実行すると MySQL エラー 2014 が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。