1
//Execute query and fetch first row  
if ($qry=$db->query("SELECT statement")) {  
  if ($row=$qry->fetch_object()) {

  }  
}


//Same code as above using only one if statement
if ($qry=$db->query("SELECT statement") && $row=$qry->fetch_object()) {

}

为什么第二个代码块(作为第一个代码块的替换运行时)会产生错误“调用非对象上的函数 fetch_object”?

4

1 回答 1

1

这是因为 PHP 并没有像您期望的那样解析第二条语句。

它的读法如下:

if ($qry = ($db->query("SELECT statement") && $row = $qry->fetch_object()))

如您所见,在调用它$qry之前设置了手段。fetch_object

尝试将您的陈述附在()

if (($qry=$db->query("SELECT statement")) && ($row=$qry->fetch_object()))
于 2013-02-26T20:37:08.450 回答