PHP/MySQL を使用した CSV データのインポート: トラブルシューティングと最適化
この記事では、PHP/MySQL を使用した CSV データの MySQL へのインポートに関連するトラブルシューティングと最適化の問題について説明します。 PHP.
懸念事項と解決策:
1. 0 として表示されるテキスト:
CSV ファイルが fgetcsv で指定された正しい区切り文字を使用していることを確認してください。データベースの「text」列のデータ型を確認してください。テキストタイプに設定されていない場合、インポートされたデータは切り詰められる可能性があります。
2.引用符で囲まれたデータ:
CSV ファイル内のデータが引用符で囲まれている場合は、fgetcsv で囲まれた_by パラメーターを使用してこれを指定できます。これにより、インポートされたデータから引用符が削除されます。
3.ヘッダー行の無視:
ヘッダー行を無視するには、データのインポートを開始する前に fgets 関数を使用して CSV ファイルの最初の X 行を読み取り、破棄します。
4.データ形式の保持:
MySQL はデフォルトでデータ形式を保持します。 10 進数値は、データベースにインポートされた後も 10 進数値のままになります。
5.実行時間制限:
「最大実行時間を超過しました」エラーが発生した場合は、PHP 構成 (php.ini) の max_execution_time 設定を増やしてみてください。または、インポート プロセスを小さなバッチに分割して、サーバーの負荷を軽減します。
最適化:
LOAD DATA INFILE 機能を使用:
MySQL は LOAD DATA INFILE 機能を提供しており、ループや解析を行わずに CSV ファイルをデータベースに直接インポートできます。この方法は、PHP ループを使用するよりも大幅に高速です。
LOAD DATA INFILE の使用例:
<?php $query = <<<EOF LOAD DATA INFILE '$fileName' INTO TABLE tableName FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (field1,field2,field3,etc) EOF; $db->query($query); ?>
LOAD DATA INFILE を利用すると、CSV インポート プロセスを合理化できます。 、パフォーマンスを向上させ、リソース消費を削減します。
以上がPHP を使用して CSV データを MySQL に効率的にインポートしてトラブルシューティングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。