您好,我正在通过脚本导入 csv 表结构如下
`contact_id` int(11) NOT NULL auto_increment,
`contact_first` varchar(255) character set latin1 default NULL,
`contact_last` varchar(255) character set latin1 default NULL,
`contact_email` varchar(255) character set latin1 default NULL,
PRIMARY KEY (`contact_id`)
而csv中的数据是这样的
Jim,Smith,jim@tester.com
Joe,Tester,joe@tester.com
我用于插入的查询如下所示
mysql_query("INSERT IGNORE INTO contacts (contact_first, contact_last, contact_email) VALUES
(
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."'
)
");
我在查询中使用了 ignore 函数,但它不起作用,它一直在插入相同的值
最佳答案
IGNORE
关键字只会对重复行产生您想要的影响。
只有在相应列上有主键或唯一键时,行才会被识别为重复行。
您还没有真正准确地解释问题所在,但我怀疑您可能想在 contact_email
列上创建一个唯一键以防止插入重复项。
我还建议至少使用 mysql_escape_string
而不是 addslashes
来确保字符串被正确编码。
可能会有关于 mysql_* 函数已弃用的评论,因此您应该查看 PDO 或 mysqli_* 函数。
关于php - 忽略不工作 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15630113/