データベースにデータを挿入しようとすると、「QUERY パケット送信中のエラー」が発生する場合があります。問題とその解決策を詳しく見てみましょう。
提供されたコードは PDO を利用して、ロングテキストとして定義された列にデータを挿入するクエリを準備および実行します。ただし、このエラーは、データ サイズが制限を超えていることを示唆しています。
MySQL では、クエリ中に送信できるデータ パケットの最大サイズに制限が課されています。デフォルトでは、この制限は 16MB です。長文は理論的には最大 4GB のデータをサポートする必要があります。
この問題は、挿入されるデータが許可されたパケット サイズより大きい場合に発生します。 MySQL はデータをパケットで送信します。パケットがデータ全体を収容できない場合、「QUERY パケットの送信中にエラーが発生しました。」
解決策:
解決するにはこの問題には 2 つのオプションがあります:
SET GLOBAL max_allowed_packet=524288000;
このコマンドは max_allowed_packet サイズを 500MB に設定します。これはほとんどのシナリオで十分です。潜在的なパフォーマンスのオーバーヘッドを回避するために、データを挿入した後は必ず値をデフォルトにリセットしてください。
以上がMySQL データベースに大きなデータを挿入すると、「QUERY パケットの送信中にエラーが発生しました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。