使用PHP从CSV更新MySql表

时间:2011-10-31 04:51:23

标签: php mysql

我需要一个PHP脚本来更新现有的MySQL表,从CSV中获取数据。需要更新表格字段hasweb,比较字段consultant_id

所以MySql查询应该是

UPDATE user_data 
SET hasweb="something" 
WHERE consultant_id = "something";

请帮我编写一个PHP脚本,可以根据需要多次执行此查询,具体取决于CSV数据。

3 个答案:

答案 0 :(得分:4)

我已经编写了很少的PHP脚本来完成这个任务,并且有很多方法可以解决它:

根据我的经验,最好使用PHP提供的CSV函数,看看fgetcsv(),因为手动打开文件并逐行读取并解析可能会导致并发症。

现在你只需遍历csv中的所有行并动态准备查询并执行它(例如(假设第0列有ID而第1列有“hasweb”)

<?php
    if (($handle = fopen("input.csv", "r")) !== FALSE)
    {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
        {
            mysql_query(UPDATE user_data SET hasweb="{$data[1]}" WHERE consultant_id = "{$data[0]}"); 
        }
    fclose($handle);
    }
?>

希望有所帮助。如果仍然卡住,请问我:)

答案 1 :(得分:1)

你可以使用php函数fgetcsv。

您可以使用此功能将CSV文件中的所有数据导入php。 例如,

$row = 1;
if (($handle = fopen("your_file.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    echo "<p> $num fields in line $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        $SQL = 'UPDATE table_name SET col1=val1 WHERE con1';
        execute($SQL); 
    }
}
fclose($handle);
}

答案 2 :(得分:1)