这已将 csv 中的每一行插入数据库两次,现在是三次。我在循环中放入的任何其他内容都不会发生超出其应有的情况。
$file_handle = fopen("uploads/numbers.csv", "r");
$stmt = $db->prepare("INSERT INTO database
(firstname,lastname,phonenumber) VALUES
(:field1,:field2,:field3)");
while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE)
{
$stmt->execute(array(':field1' => $line_of_data [0], ':field2' => $line_of_data[1], ':field3' => $line_of_data[2]));
}
最佳答案
在数据库上设置正确的主键。 (名字,姓氏)或(名字,姓氏,电话号码)取决于用法。 Ta-da,不再重复。
我假设 James 的观点是正确的,因为 CSV 包含数据库中预先存在的数据,但无论哪种方式,主键都会防止重复。
如果您使用名字、姓氏键并且希望脚本能够更新电话号码,则可以使用 REPLACE 而不是 INSERT。
关于php - 为什么这个 PDO Insert 执行了两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108927/