查询结果为true而不是false

时间:2015-08-19 15:23:10

标签: php mysql

考虑以下简单的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中提交的角色?

我的主要问题:

即使PK requesttid = 155没有行,$ result返回true,我得到的消息是“成功”... 为什么?在这种情况下,如何收到错误消息?

谢谢

1 个答案:

答案 0 :(得分:3)

只有在执行时出错时,查询方法才会返回false。如果没有发生任何更改,则没有错误,因此查询返回false以外的其他内容。

您可以使用affected_rows属性检查所有行是否已更新。它返回查询后更改的行数。

更多信息:http://php.net/manual/en/mysqli.affected-rows.php