考虑以下简单的PHP代码:
<?php
$db=new mysqli('localhost', 'root','','apeirosto');
$query="UPDATE REQUESTS SET STATUS=1 where requestid=155";
$result=$db->query($query);
if (!($result)) {
$message= "fail_update";
echo $message;
}
else
{
$message= "success";
echo $message;
}
?>
第二个问题:
$result=$db->query($query);
在DB中扮演commit的角色。
我的主要问题是:
即使没有PK requesttid =155的行,$result返回true,我得到的消息是"成功"…为什么?在这种情况下,我如何得到错误消息?
谢谢
查询方法只有在执行错误时才返回false。如果没有发生任何更改,则没有错误,因此查询返回的不是false。
您可以使用affected_rows
属性来检查任何已更新的行。它返回查询后更改的行数。
更多信息:http://php.net/manual/en/mysqli.affected-rows.php