I have a query that updates a record on my database, it works fine but i wanted to know how to check if the update has happened so i can return true and display the right message?
Now i know with a SELECT query i can do:
if(stmt->fetch())
If that is true i return true and saying "records found" but i haven't got a clue how to do it for an update query?
Anyone know how to?
$query = "UPDATE user
SET password = ?
WHERE email = ?";
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
$stmt->execute();
//Check if update worked
}
Thanks for the help.
Execute
method returns True when it finished successfully, but, if this behavior is not enough for you, you can check also for 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);
}
}
The second check you can do is to verify that exactly 1 row was updated:
if($stmt = $conn->prepare($query))
{
$stmt->bind_param('ss', $pwd, $userEmail);
if ($stmt->execute() and $stmt->affected_rows == 1) {
//your update is succesfully.
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With