txt ファイル内に製品名のリストがあります。ただし、ファイルは巨大 (4,8GB++) であるため、文字数が多くなります。製品名に加えて、md5 ハッシュ、時間、ランダム ID などの追加情報を追加したいと思います。
これを行うための最良の解決策は何ですか?行ごとに読み取る PHP スクリプトを作成するには、永遠に時間がかかるようです。
良い提案はありますか?
txt ファイル内に製品名のリストがあります。ただし、ファイルは巨大 (4,8GB++) であるため、文字数が多くなります。製品名に加えて、md5 ハッシュ、時間、ランダム ID などの追加情報を追加したいと思います。
これを行うための最良の解決策は何ですか?行ごとに読み取る PHP スクリプトを作成するには、永遠に時間がかかるようです。
良い提案はありますか?
はい、php を使用してテキスト ファイルを読み取り、それをデータベースに渡すことができます
$string = file_get_contents("YOURTEXTFILE", "r");
$myFile = "PATH/TO/YOUR/TEXTFILE";
$fh = fopen($myFile, 'w') or die("Could not open: " . mysql_error());
fwrite($fh, $string);
fclose($fh);
$sql = mysql_connect("localhost", "root", "password");
if (!$sql) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("YOURDB");
$result = mysql_query("LOAD DATA INFILE '$myFile'" .
" INTO TABLE test FIELDS TERMINATED BY '|'");
if (!$result) {
die("Could not load. " . mysql_error());
}
そして結果はこのようになります
+--------+-------------+------------+
| ID | Name | time |
+--------+-------------+------------+
| 145 | line1 | 23:59 |
| 234 | line2 | 00:00 |
+--------+-------------+------------+
以前にこのソリューションを使用したことがありますが、ファイルのサイズが原因でうまくいくかどうかはわかりません。他の誰かに役立つ場合に備えて、ここに残しておきます。
product.txt ファイルには productID のみがあり、他に何もないと仮定します。
基本的に変更
PID1
PID2
に
(PID1),
(PID2),
次に、簡単な編集でファイルを読み取らせます
INSERT INTO dTable(ColName) VALUES
(PID1),
(PID2);
そして最後にインポート
mysql -uUser -p DATABASE < filename.sql
これは初歩的な方法ですが、それほど手間をかけずに機能するはずです。必要な残りのデータを追加すると、後で SQL で簡単に実行できます。
mysql を使用していて、ファイルが CSV タイプの場合は、LOAD DATA INFILE
.
整形式の CSV があれば、PHP はまったく必要ありません。
その場合はお知らせください。詳細を追加できます。