Php 关于重复密钥更新值;插入相同的值两次
我正在尝试插入一些值,如果存在重复的键更新,则更新表Php 关于重复密钥更新值;插入相同的值两次,php,mysql,Php,Mysql,我正在尝试插入一些值,如果存在重复的键更新,则更新表person。我正在插入值,但它正在重复这些值,而不是执行更新。输入字段是动态的,可以添加或删除值。但我试图避免重复的价值观。如何插入新值?如果有重复的键,则如何更新字段 Html/(未包含jquery函数将生成更多输入字段) 查询后的表格: 所有类型的重复检查SQL 替换为 INSERT。。重复时 插入忽略 当表具有主键或唯一索引时工作。我认为没有唯一的索引。(可能person\u id是自动增量的主键) 那么,你能发布你的人的创建声明吗
person
。我正在插入值,但它正在重复这些值,而不是执行更新。输入字段是动态的,可以添加或删除值。但我试图避免重复的价值观。如何插入新值?如果有重复的键,则如何更新字段
Html/(未包含jquery函数将生成更多输入字段)
查询后的表格:
所有类型的重复检查SQL
替换为
INSERT。。重复时
插入忽略
主键
或唯一
索引时工作。我认为没有唯一的索引。(可能person\u id
是自动增量的主键)
那么,你能发布你的人的创建声明吗?如果person没有唯一性(person\u fname,person\u lname)
则应使用以下sql添加它:
ALTER TABLE person ADD UNIQUE (person_fname, person_lname);
这是正确的。您需要使用UNIQUE
约束定义复制条件。这更有意义。在这种情况下,是,person\u id
是自动递增的主键。
//Insert or Update Values
$f = 1;
while(isset($_POST['person_fname_' . $f]))
{
$person_fname = $_POST['person_fname_' . $f];
$person_lname = $_POST['person_lname_' . $f];
$query_init3 = "INSERT INTO person (academy_id, first_name, last_name) VALUES (:id,:person_fname,:person_lname)
ON DUPLICATE KEY UPDATE academy_id=:id, first_name=:person_fname, last_name=:person_lname";
$query_prep3 = $db_con->prepare($query_init3);
$query_prep3->execute(array(
"id" => $id,
"person_fname" => $person_fname,
"person_lname" => $person_lname
));
$f++;
}
ALTER TABLE person ADD UNIQUE (person_fname, person_lname);