我正在尝试删除此ON DUPLICATE KEY UPDATE,因为我想要重复。此语句确实有效并插入数据但不重复。请帮忙。
$sql = "INSERT INTO projectselect (id_proj, project, role, id_agent)
VALUES ( ?,?,?, ( select idagency FROM agentsInfo WHERE email = ?))
ON DUPLICATE KEY UPDATE
`id_agent` = VALUES(`id_agent`),
`project` = VALUES(`project`),
`role` = VALUES(`role`)
";
if (($stmt = $con->prepare($sql)) === false) {
trigger_error($con->error, E_USER_ERROR);
}
$result2= mysqli_query($con, $idq);
$row_number = 1;
while ($row = mysqli_fetch_array($result2)) {
$id_proj= $row["id_proj"];
$project= $row["project"];
$role= $row["role"];
$id_proj++;
}
if ($stmt->bind_param("ssss",
$id_proj,
$postproj,
$postrole,
$_SESSION["email"]) === false) {
trigger_error($stmt->error, E_USER_ERROR);
}
if (($stmt->execute()) === false) {
trigger_error($stmt->error, E_USER_ERROR);
}
答案 0 :(得分:1)
如果您想允许重复,请从表unique index
中删除projectselect
。
答案 1 :(得分:1)
您必须了解ON DUPLICATE KEY
仅在插入记录与现有记录冲突时触发,并且只有在您的表具有" unique"时才会发生此冲突。 fields - 该值只能在该表的所有记录中存在一次的字段。
您必须修复的第一件事是从表中删除UNIQUE
和PRIMARY
键和索引。一旦完成,整个过程就应该有效了。
然后,一旦不再相关,您就可以从查询中删除ON DUPLICATE KEY...
语句,以保持代码清洁。