MySQL エラー 2014 の原因: バッファリングされていないクエリがアクティブな場合はクエリを実行できません
このエラーは、最初のクエリをバッファせずに複数のクエリを実行しようとすると発生します。クエリ。 MySQL のクライアント プロトコルでは、2 つのクエリを同時に実行することが禁止されています。
エラーの詳細
- 原因: バッファリングされていないクエリでは、前のクエリの行がフェッチされないままになり、後続のクエリが実行できなくなります。 .
- 症状: MySQL がエラーを返す2014 では、バッファリングされていないクエリがアクティブな場合はクエリを実行できないと記載されています。
ソリューション
-
バッファされたクエリを使用する: デフォルト, PDO はプリペアド ステートメントをエミュレートし、バッファリングされていないクエリを生成します。バッファリングされたクエリを有効にするには、PDO::ATTR_EMULATE_PREPARES=false を設定します。
-
Use PDOStatement::fetchAll(): 最初のクエリのすべての結果を取得すると暗黙的にバッファリングされ、後続のクエリexecute.
-
CloseCursor(): クエリのカーソルを手動で閉じると、サーバー上のリソースが解放され、後続のクエリが実行できるようになります。ただし、必要な行がすべてフェッチされた場合にのみ使用してください。
その他の考慮事項
- 潜在的なメモリ消費の問題を防ぐために、カーソルをすぐに閉じてください。 .
- 使いやすいように、位置パラメータの代わりに名前付きパラメータを使用します。 PDO.
- パフォーマンスと柔軟性を向上させるには、mysqlnd ライブラリに切り替えてください。
このエラーを回避し、効率的なデータベース操作を確保するには、適切なクエリ実行とリソース管理手法が重要であることを覚えておいてください。
以上がMySQL エラー 2014: 「バッファリングされていないクエリがアクティブな状態ではクエリを実行できません」が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。