php - 忽略不工作 Mysql

标签 php mysql insert

您好,我正在通过脚本导入 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/

相关文章:

php - 如何修复 App\Http\Controllers\FilesController::uploadAttachments() 缺少参数 3

php - PHP检查用户名是否存在

php - 来自 3 个表的 SQL 报告,其中包含字段的 SUM

php - 从多个表中选择行的最佳方法?

PHP:如何计算上次插入时间和现在之间的剩余时间()

php - MYSQL数据库字符集问题

php - 插入数据 PDO 时出现问题

JavaScript - 使用数据创建数组而不循环

php - 子目录中的 htaccess 重写库

php - Codeigniter 根据 id 返回用户名