我希望在电影不存在时收到通知。这表示从数据库中删除电影的脚本。 这是我现在所拥有的一部分:
$title = $_POST["title"];
$delMovie = mysqli_prepare($link, "DELETE FROM movie WHERE title=?");
mysqli_stmt_bind_param($delMovie, "s", $title);
if (mysqli_stmt_execute($delMovie)) {
echo("Movie \"" . $title . "\" successfully deleted: ");
echo(mysqli_stmt_affected_rows($delMovie) . " rows affected");
} else {
echo("Error (" . mysqli_stmt_errno($delMovie) . "): ");
echo(mysqli_stmt_error($delMovie));
}
mysqli_stmt_free_result($delMovie);
mysqli_stmt_close($delMovie);
mysqli_close($link);
当电影不存在时,它仍会返回:
电影“Movie1”已成功删除:0行受影响
如您所见,它不存在,但仍然会返回“Successfully”。如何更改此显示:
错误:数据库中不存在电影
答案 0 :(得分:2)
以下内容如何:
if (mysqli_stmt_affected_rows($delMovie) == 0) then
echo "Error: Movie does not exists in database";
仅仅因为mysql返回0,并不意味着你必须将结果显示为不止一个。
=============================================
你只有其他选择
1) Do a select statement to check for existence
2) If not exists
a) Show error
b) Delete
- If error deleting, show error
- Else show success
或
1) Delete
- If 0 rows affected or error, Show error message
- Else show success
我认为第二条路径的变体可以使代码更清晰。