gpt4 book ai didi

mysql - 尝试更新时 PHP 出现重复条目​​错误

转载 作者:行者123 更新时间:2023-11-29 07:53:45 25 4
gpt4 key购买 nike

我正在检查记录是否存在,如果尚不存在则创建新记录,否则进行更新。 SQL 在 PHPMyAdmin 中工作正常,但不能通过 PHP 页面。

$check_for_id = mysql_query("SELECT id FROM Members WHERE ID = '$id'");
if(mysql_num_rows($check_for_id) == 0) {
// Not found, add a new record
$sql="INSERT INTO Members (ID, Title, FirstName, LastName) VALUES ('$id', '$title', '$firstname', '$lastname')";
$response=" Record Added";
} else {
// Member is already in the database, so let's just update the info
$sql="UPDATE Members
SET ID='$id', Title='$title', FirstName='$firstname', LastName='$lastname'
WHERE ID='$id'";
$response=" Record Updated";
}


if (!mysqli_query($dbconnect,$sql)) {
die('Error: ' . mysqli_error($dbconnect));
}
echo mysqli_affected_rows($dbconnect) . $response;

最佳答案

MySQL 有一个名为 INSERT ... ON DUPLICATE KEY UPDATE 的语法。这正是您想要的,只需 1 个查询而不是 3 个。还有 REPLACE ,尽管略有不同(REPLACEINSERTDELETE + INSERTINSERT ODKUINSERT UPDATE,如果您有 auto_increment,结果可能会有所不同)。与您的代码不同,它将以事务方式完成。它还假设 id 是主键或唯一键。

关于mysql - 尝试更新时 PHP 出现重复条目​​错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25690487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com