大量のテキストデータをMySQLテーブルにインポート

レコード件数が多いデータをMySQLのテーブルにインポートする場合に便利な
mysqlimport (データインポートプログラム)

おおよそ12万件の郵便番号データのインポートが数秒で終了。

kenall.txtというテキストファイルをkenallというテーブルにインポートする場合
インポートするファイルの拡張子を除いた名前のテーブルにインポートされます。
予めkenallという名前でテーブルを作成

<?php
$parm = 'mysqlimport';
$parm .= ' --delete'; // テーブルを空にしてからインポート
$parm .= ' --fields-terminated-by="|" '; // テキストファイル項目区切り記号
$parm .= ' --local';
$parm .= ' --replace';
$parm .= ' --ignore-lines=1';   // 1行目(見出し行など)を読み飛ばす
$parm .= ' --host=localhost --user=root --password=mypassword'; //サーバ、ユーザ名、パスワード
$parm .= ' db_name'; //データベース名
$parm .= ' foldername/kenall.txt'; //テキストファイル保存場所、ファイル名

exec($parm);
?>

文字コードがUTF-8の場合テキストファイルの1行目でエラーが発生したので
強制的に1行目に不要な見出し行を作り
読み飛ばすことでエラーを無視

オプションのパラメータ指定はマニュアルを参照

http://dev.mysql.com/doc/refman/5.1/ja/mysqlimport.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です