ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して CSV データを MySQL に効果的にインポートし、データ型の不一致や実行時間制限などの一般的な問題に対処するにはどうすればよいですか?

PHP を使用して CSV データを MySQL に効果的にインポートし、データ型の不一致や実行時間制限などの一般的な問題に対処するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-20 22:36:19813ブラウズ

How Can I Effectively Import CSV Data into MySQL Using PHP, Addressing Common Issues Like Data Type Mismatches and Execution Time Limits?

PHP/MySQL を使用した CSV データのインポート

CSV ファイルから MySQL データベースへのデータのインポートは、次のことができる一般的なタスクです。さまざまな方法で達成されます。一般的なアプローチの 1 つは、PHP を使用してデータを処理し、データベースに挿入することです。

テキストが 0 として表示される

提供されたコードでは、テキスト データがデータベース内で 0 と表示されるのは、$import 変数が使用される mysql_query ステートメントに起因すると考えられます。 $data 配列の $data[0] 要素に、「text」列に挿入するテキスト値が実際に含まれていることを確認してください。 CSV ファイルが正しい値と列分離でフォーマットされていることを再確認してください。

引用符で囲まれたデータ

通常、引用符で囲まれたデータは結果として発生します。 CSV ファイルのフィールドを二重引用符で囲んでいます。これに対処するには、LOAD DATA INFILE クエリで FIELDS TERMINATED BY 句と OPTIONALLY ENCLOSED BY 句を宣言して、フィールド区切り文字と囲み文字を指定します。

CSV の最初の行を無視する

CSV ファイルの最初の行 (ヘッダーなど) をスキップするには、LINES TERMINATED BY 句を変更してこれを実現できます。たとえば、 LINES TERMINATED BY 'n' ESCAPED BY '\n' IGNORE 1 LINES は CSV ファイルの最初の行をスキップします。

データ形式変換

データ形式は通常、インポート プロセス中に保持されます。ただし、特定のデータ型では精度の問題が発生する可能性があります。たとえば、CSV ファイルに浮動小数点数が含まれている場合、ターゲット列が整数型として定義されていれば、それらはデータベース内で整数に変換される可能性があります。これを回避するには、データベース内の列のデータ型が CSV ファイル内の予期されるデータ型と一致していることを確認してください。

最大実行時間を超過しました

エラー「致命的エラー」 : 最大実行時間 30 秒を超えました」は、PHP スクリプトが PHP 構成によって課された最大実行時間制限を超えたことを示します。これを解決するには、PHP 設定ファイル (php.ini など) の max_execution_time ディレクティブを変更することで、実行時間制限を増やすことができます。あるいは、前に説明した MySQL LOAD DATA INFILE メソッドの使用を検討してください。これにより、PHP スクリプトの実行時間制限に影響されずにインポートをより高速に実行できます。

以上がPHP を使用して CSV データを MySQL に効果的にインポートし、データ型の不一致や実行時間制限などの一般的な問題に対処するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。