rag*_*nny 5 php mysql mysqli prepared-statement
我有一个查询更新我的数据库上的记录,它工作正常但我想知道如何检查更新是否已发生所以我可以返回true并显示正确的消息?
现在我知道我可以做一个SELECT查询:
if(stmt->fetch())
Run Code Online (Sandbox Code Playgroud)
如果这是真的我返回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
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
Execute方法成功完成后返回True,但是,如果此行为不够,您还可以检查受影响的行:
$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);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以做的第二项检查是验证确切的1行已更新:
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
if ($stmt->execute() and $stmt->affected_rows == 1) {
//your update is succesfully.
}
}
Run Code Online (Sandbox Code Playgroud)
检查以下是否可行
$query = "UPDATE user
SET password = ?
WHERE email = ?";
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
if ($stmt->execute())
{
// worked
}
else
{
// not worked
}
Run Code Online (Sandbox Code Playgroud)
祝好运!!!
| 归档时间: |
|
| 查看次数: |
4783 次 |
| 最近记录: |