php mysql表创建建议WHERE某些cell =

时间:2011-02-17 21:01:29

标签: php mysql php-5.3

我有一个表(部分),其中有2列,1000行左右。第1(部分)列的信息存储在每行中。我正在通过我用PHP解析的csv文件更新第二列。该csv文件有2列,大约有一半的行。更新csv文件中的第一列将需要匹配parts表的第一列中的行。然后csv文件中的第二列将更新(部分)表中的第二列。

我使用此查询将信息循环到零件表中:

<?php
$file = fopen("csv-file-w-2-columns.csv","r");
require "../db_connect.php";
mysql_select_db("parts", $con);
while(!feof($file)) {
    $line = fgets($file);
    $values = explode(",",$line);
    mysql_query("UPDATE parts SET parts_column2='".$values[1]."' WHERE parts_column1='".$values[0]."'");
}
mysql_close($con);
fclose($file);
?>

这样做需要很长时间,我的脚本永远不会完成。如果我一次只做一点点就可以了。

任何人都可以提供一些建议来加快速度,以及为什么它可能会像我一样处理整个事情时一直停滞不前的任何信息?

2 个答案:

答案 0 :(得分:2)

看看你的max_execution_time。您可以使用set_time_limit覆盖此INI设置。我猜你的脚本已经超时了。

至于代码的结构,本身并没有任何错误的。根据服务器的max_execution_time设置,它只需要太长时间。

答案 1 :(得分:1)

如果您不必通过PHP执行此操作,或者如果您的PHP dbuser具有LOAD DATA INFILE的授权,您可能会发现将csv加载到临时表中然后执行{{1}更容易} 一气呵成。它肯定比为文件的每一行运行更新查询要快得多。

e.g。

UPDATE