0

我正在从我的数据库表中选择一个帖子,并使用 getParam() 从 url 中获取 id。我想要做的是,当没有 url 中指定的 id 的帖子时显示错误消息。

这是我的查询:

$db = Zend_Registry::get('db');
$select = $db->select();
$select->from(array('p' => 'posts'))
       ->join(array('u' => 'users'), 'u.user_id = p.post_userid')
       ->where('p.post_id = ?', $postid);
$post = $db->fetchRow($select);

问题是,当我这样做时,即使 id 无效,它也会echo count($post)显示1,并且当 id 有效并且实际选择了一行时,它会显示超过 1。

所以我的问题是,我应该如何检查使用指定的 id 选择了多少行?($postid!)。

有什么建议么?

4

2 回答 2

1

如果没有结果 fetchRow 将返回 false,因此您可以直接在结果上进行测试,例如: if($post) { ... 这就是 count 返回 1 的原因,对数组以外的任何内容调用 count 返回 1 (空变量除外)。请注意,这与 Db_Table 的 fetchRow 方法不同,后者返回 null。

于 2011-01-28T12:27:14.293 回答
0

我认为你应该$post = $db->fetchRow($select);变成$posts = $db->fetchAll($select);

于 2011-01-28T02:28:18.423 回答