ホームページ >データベース >mysql チュートリアル >バッファリングされていないクエリで MySQL エラー 2014 が発生するのはなぜですか?また、それを解決するにはどうすればよいですか?
バッファなしクエリで MySQL エラー 2014 が発生するのはなぜですか?
MySQL エラー 2014、「他のバッファなしクエリがアクティブである間はクエリを実行できません」バッファされていない別のクエリがまだ存在しているときにクエリが実行されると発生します。 進捗。バッファリングされていないクエリでは、サーバーからすべての結果が完全には取得されず、エラーが発生します。
PDO::ATTR_EMULATE_PREPARES=false の場合のみこの現象が発生するのはなぜですか?
When PDO ::ATTR_EMULATE_PREPARES=true、PDO は準備されたステートメントをエミュレートします。この設定では、すべての結果が暗黙的に取得されるため、エラーの発生が防止されます。ただし、PDO::ATTR_EMULATE_PREPARES=false を指定すると、PDO は明示的なフェッチを必要とするネイティブのプリペアド ステートメントを使用します。
一部の PHP バージョンの動作が異なるのはなぜですか?
異なる PHP バージョンバッファリングされていないクエリは別の方法で処理される場合があります。古いバージョンではすべての結果が自動的にフェッチされる可能性がありますが、新しいバージョンでは MySQL プロトコルに厳密に準拠しているため、バッファリングされていないクエリが使用されるとエラーが発生します。
エラーの解決方法
エラーを解決するには、いくつかの方法があります。 options:
推奨事項
一般に、小さい結果セットの場合、または次の場合には、バッファリングされたクエリを使用することをお勧めします。結果に順番にアクセスすることが重要です。大きな結果セットの場合は、 fetchAll() を使用してすべての結果をメモリに積極的にロードできます。 closeCursor() は、カーソルが途中で閉じられて結果が失われる可能性を避けるために慎重に使用する必要があります。
さらに、パフォーマンスと PHP との互換性を向上させるために、mysqlnd ドライバーを使用することをお勧めします。
以上がバッファリングされていないクエリで MySQL エラー 2014 が発生するのはなぜですか?また、それを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。