首页 > 解决方案 > 如果已经存在则不会插入的PHP MySQL插入查询

问题描述

不幸的是,我一直在做一些研究,但没有发现任何我能够完成的工作,我认为这源于我不理解我一直在查看的示例中的 MySQL 构造。

我要做的是运行插入查询,并检查 3 个特定列中的值以确保它们不存在,然后插入,否则什么也不做。

我的表非常基本:id(int11)、user(varchar(45))、label(varchar(255))、agent(varchar(255))、empid(varchar(10))。

我的 id 是我的主要,具有自动增量,这是我目前拥有的代码,可用于插入,但没有对重复项进行处理:

$i = 0;
foreach ($agents as $ag){
    $sql = mysql_query("INSERT INTO `pms_users` 
    (`id`,`user`,`label`,`agent`,`empid`)
     VALUES 
    (NULL, '$user','$group','$labels[$i]','$ag')");
    $i ++;
}

我需要检查的三列是 $user、$group 和 $ag。

标签: phpmysqlsqluniquesql-insert

解决方案


为 .添加唯一索引(user, label, empid)。然后数据库将不允许您创建重复项。

ALTER TABLE pms_users
ADD UNIQUE INDEX (user, label, empid);

推荐阅读