Php 忽略不工作的Mysql

Php 忽略不工作的Mysql,php,mysql,insert,ignore,Php,Mysql,Insert,Ignore,嗨,我正在通过脚本导入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 lati

嗨,我正在通过脚本导入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`)
mysql_query("INSERT IGNORE INTO contacts (contact_first, contact_last, contact_email) VALUES
                (
                    '".addslashes($data[0])."',
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."'
                )
            ");
csv中的数据是这样的

Jim,Smith,jim@tester.com
Joe,Tester,joe@tester.com
我用于insert的查询如下

`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`)
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_电子邮件列上创建一个唯一的键,以防止插入重复项

我还建议至少使用mysql\u escape\u string而不是addslashes来确保字符串编码正确


可能会有评论说mysql_*函数已被弃用,因此您应该研究PDO或mysqli_*函数。

如果使用IGNORE关键字,则执行INSERT语句时发生的错误将被视为警告 请参阅IGNORE的用法是:


如果使用IGNORE关键字,则执行INSERT语句时发生的错误将改为警告。例如,在不忽略的情况下,复制表中现有唯一索引或主键值的行将导致重复键错误,语句将中止。使用IGNORE时,仍不会插入行,但不会发出错误

在您的例子中,插入三个相同的值,但是ID是自动递增的,这将插入具有相同值的新记录,这是显而易见的。 如果要防止它插入到数据库中,必须将唯一索引添加到另一列中

希望这会有帮助