Php 将产品名称输入数据库
我在一个txt文件中有一个产品名称列表。然而,这个文件是巨大的(4,8GB++),所以是的,它有很多单词。除了产品名称之外,我还想添加一些附加信息,如md5哈希、时间和随机ID 这样做的最佳解决方案是什么?创建一个逐行阅读的PHP脚本似乎需要花费很长时间Php 将产品名称输入数据库,php,Php,我在一个txt文件中有一个产品名称列表。然而,这个文件是巨大的(4,8GB++),所以是的,它有很多单词。除了产品名称之外,我还想添加一些附加信息,如md5哈希、时间和随机ID 这样做的最佳解决方案是什么?创建一个逐行阅读的PHP脚本似乎需要花费很长时间 有什么好的建议吗 是的,您可以使用php读取文本文件并将其传递到数据库 $string = file_get_contents("YOURTEXTFILE", "r"); $myFile = "PATH/TO/YOUR/TEXTFILE"; $
有什么好的建议吗 是的,您可以使用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
到
然后通过一些简单的编辑使文件被读取
INSERT INTO dTable(ColName) VALUES
(PID1),
(PID2);
最后是进口
mysql -uUser -p DATABASE < filename.sql
mysql-uUser-p数据库
这是一个基本的方法,但应该不会太麻烦。以后在SQL中添加所需的其余数据会更简单。如果您使用的是mysql,并且文件是CSV类型,则可以使用
加载数据填充
如果您有一个格式良好的CSV,那么根本不需要PHP
如果是这种情况,请告诉我,我可以添加更多详细信息。不确定您是否计划将随机ID用于产品代码,但如果是,我不会,因为您可能会遇到冲突。慢慢来。4GB文件将需要大量时间逐行迭代。我将使用随机代码,以及日期、时间信息等,因此不会出现崩溃。我还可以将其与单词的长度组合或进行哈希运算。将数据加载到db MySQL/PostgreSQL需要约40分钟。那么,如果我想将单词与ID一起进行哈希运算,该怎么办?要创建uniq哈希。。。。如果为false==?
mysql -uUser -p DATABASE < filename.sql