我有一个更新数据库记录的查询,它工作正常,但我想知道如何检查更新是否已经发生,以便我可以返回 true 并显示正确的消息?
现在我知道我可以使用 SELECT 查询:
if(stmt->fetch())
如果这是真的,我返回 true 并说“找到记录”,但我不知道如何为更新查询做这件事?
有人知道怎么做吗?
$query = "UPDATE user
SET password = ?
WHERE email = ?";
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
$stmt->execute();
//Check if update worked
}
感谢您的帮助。
最佳答案
Execute
方法在成功完成时返回 True,但是,如果此行为对您来说还不够,您还可以检查 affected rows :
$query = "UPDATE user
SET password = ?
WHERE email = ?";
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
if ($stmt->execute()) {
//query with out errors:
printf("rows updateds: %d\n", $stmt->affected_rows);
} else {
//some error:
printf("Error: %s.\n", $stmt->error);
}
}
您可以做的第二项检查是验证是否恰好更新了 1 行:
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
if ($stmt->execute() and $stmt->affected_rows == 1) {
//your update is succesfully.
}
}
关于php - 使用准备好的语句更新记录,检查更新是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927486/