这是我的代码:
public function is_existing($url) {
$query = $this->select()
->where("url=?",$url);
if(!$query) {
return false;
} else {
$row = $this->fetchRow($query);
$row = $row->toArray();
return $row;
}
}
但有时,我会收到
致命错误:在......
中的非对象上调用成员函数toArray()
使用if(!$query)
检查DB中的现有行是否正确?
答案 0 :(得分:1)
将您的代码更改为此
public function is_existing($url) {
$query = $this->select()
->where("url=?",$url);
$row = $this->fetchRow($query);
if(!$row) {
return false;
} else {
return $row->toArray();
}
}
因为无论$ url是否匹配记录,总是会创建$ query对象,因此如果条件将始终传递。
答案 1 :(得分:1)
使用if(!$ query)检查DB中的现有行是否正确?
不,您应该评估fetchRow的结果以确定是否有结果,fetchRow
如果没有找到行,则返回Zend_Db_Table_Row
或null
。
public function is_existing($url) {
$query = $this->select()
->where("url=?",$url);
$row = $this->fetchRow($query);
if(is_null($row)) {
return false;
} else {
return $row->toArray();
}
}