我在 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 文件只有 productIDs 而没有其他您可以:
基本改变
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。
让我知道是否是这种情况,我可以添加更多细节。