あるユーザーは、CSV データを MySQL データベースにインポート中に問題に直面し、次のような問題が発生しました。質問:
1. 「0」として表示されるテキスト値:
データはおそらく文字列ではなく整数としてデータベースにインポートされています。データベース列が正しいタイプ (例: TEXT または VARCHAR) であることを確認します。
2.引用符で囲まれたデータの処理:
LOAD DATA INFILE クエリで OPTIONALLY ENCLOSED BY 句を使用して、囲み文字 (例: ") を指定します。
3. ヘッダー行の無視:
クエリに LINES TERMINATED BY 句を追加し、行区切り文字 (n など) を指定します。その後、インポートする前に必要な最初の行数を手動で無視します。
4. データ形式の保持:
MySQL は、特に指定がない限り、数値を元の形式でデータベースに保存します。
5.時間超過エラー:
PHP の設定 (php.ini など) で max_execution_time 設定を増やして、実行時間を長くできるようにします。大規模なインポートの場合は、MySQL の LOAD DATA INFILE などのより効率的な方法の使用を検討してください。
PHP ループを使用してデータをインポートする代わりに、MySQL の LOAD DATA INFILE 機能を使用すると、単一の SQL クエリで CSV ファイルをテーブルに直接インポートできます。
$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);
この方法は、PHP 解析ループよりも高速で効率的です。
以上がPHP を使用して CSV データを MySQL に効率的にインポートし、一般的な問題を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。