我正在检查是否存在记录,如果该记录尚不存在则创建新记录,否则更新。 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;
答案 0 :(得分:2)
MySQL有一种名为INSERT ... ON DUPLICATE KEY UPDATE的语法,它完全符合您的要求,只需1个查询而不是3个。还有REPLACE,虽然略有不同(REPLACE
是{ {1}}或INSERT
,DELETE + INSERT
为INSERT ODKU
或INSERT
,如果您有auto_increment,结果可能略有不同)。它将以事务方式完成,与您的代码不同。它还假定id是主键或唯一键。