我有一个像这样的csv文件
id,question,ans_number, ans1,ans2,ans3,ans4...
我想从上传的csv文件中插入并更新my_table
,ans_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的新手。我非常感谢任何建议。
答案 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);
}