我建立一个功能

public function getBannedByLogin($commentId)
    {
    $sql = $this->getDbAdapter()->select()
            ->from(array('comments' => 'comments'), array())
            ->join(array('users' => 'qengine_users'),
            'comments.bannedBy = users.userId',
            array())
            ->where('commentId = ?', $commentId)
        ;
        $row = $this->fetchRow($sql);
        return $row['login'];

    }


还有问题,那是行不通的! :D
让我解释一下。注释中的“ bannedBy”列返回禁止的用户ID。我需要与表用户一起加入以加载登录字段。我哪里有错误?

最佳答案

我认为代码在不引发异常的意义上起作用。如果是这样,您的代码就可以了,您只需明确告诉Zend_Db不要选择任何列。

public function getBannedByLogin($commentId)
{
$sql = $this->getDbAdapter()->select()
        ->from(array('comments' => 'comments'))
        ->join(array('users' => 'qengine_users'),
        'comments.bannedBy = users.userId')
        ->where('commentId = ?', $commentId)
    ;
    $row = $this->fetchRow($sql);
    return $row['login'];

}


from()join()函数的最后一个参数是您希望选择的列数组。如果传入空数组,则不会选择任何列。无参数=选择所有内容。当然,您也可以只指定需要的列。

关于mysql - Zend Framework-连接查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23245317/

10-13 08:49