如何在php

时间:2015-12-02 08:02:46

标签: php mysql csv

我有一个像这样的csv文件

id,question,ans_number, ans1,ans2,ans3,ans4...

我想从上传的csv文件中插入并更新my_tableans_table。如果my_table中不存在数据,我只想将csv文件中的id和问题作为新记录插入my_table,如果存在,我只想更新现有数据的问题。

my_table中,我有这样的列

id,question,status,question_group,department

id是auto_increment和主键。

对于ans_table,我想插入并更新其余的csv文件数据,例如ans_number,ans1,ans2,ans3,ans4 ......。与my_table的程序相同。

ans_table中,列是

id,name,my_table_id

my_table_id是来自my_table的ID。

我尝试了很多来解决这个问题。但我不能因为我是php的新手。我非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

// your mysql connection
...
if (($handle = fopen($csv_filename, 'r')) !== FALSE)
{
    while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE)
    {
        mysql_query("INSERT INTO my_table(id, question) VALUES({$row[0]}, {$row[1]}) ON DUPLICATE KEY UPDATE question = VALUES(question);");
        // assuming that ans_table.id field is auto-increment and primary key
        mysql_query("INSERT INTO ans_table(my_table_id, ans_number, ans1, ans2, ans3, ans4) VALUES({$row[0]}, {$row[2]},{$row[3]}, {$row[4]}, {$row[5]}, {$row[6]});");
    }
    fclose($handle);
}