Zend Framework,echo消息if(!$ row)不起作用

时间:2012-04-30 20:46:21

标签: zend-framework

如果行计数为0,这应该是直接的我想要回显消息。这就是我所拥有的:

public function getClubComment($id) {
$id = (int) $id;
$row = $this->fetchRow('club_id = ' . $id);
if (!$row) {
    echo 'No comments';
    }
    return $row->toArray();
    var_dump($row);
}

2 个答案:

答案 0 :(得分:0)

也许尝试类似的事情:

//not sure if this will work as I don't do this kind of request anymore
public function getClubComment($id) {
$id = (int) $id;
$row = $this->fetchRow('club_id = ?',  $id);
if (!$row) {echo 'No comments';}
    return $row->toArray();
    var_dump($row);
}

我认为你做这样的事情会更快乐,大部分猜测工作都会完成。

public function getClubComment($id) {
$id = (int) $id;
//create instance of Zend_Db_Select object
$select = $this select();
$select->where('club_id = ?', $id);
//fetchRow using Zend_Db_Select object
$row = $this->fetchRow($select);
//fetchRow() returns NULL so may as well test for that.
if ($row === NULL) {
    throw new Zend_Db_Table_Exception();
    }
    return $row->toArray();
    var_dump($row);
}

Zend_Db_Select在模型中使用非常有用,因为它通常会正确引用值,并且很容易使用任何sql构建相当复杂的sql查询。在这个例子中,我对select()的每个部分使用了离散线,但我可以很容易地将它们串在一起。我个人喜欢将每一行分开,以便我可以轻松更改或排除故障。

答案 1 :(得分:0)

fetchRow返回一个对象,即使没有结果,这就是if语句中的条件总是为false的原因,试试这个

if (!count($row))