ZF2从Controller执行数据库查询

时间:2013-12-03 04:59:08

标签: php sql database zend-framework2

嗨,我是ZF2的新手,不熟悉ZF2的一些变化。我想知道如何直接从Controller执行SQL查询。

我有以下代码:

 public function indexAction()
 {
    $db = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
    $sql = "SELECT * FROM books";
    $statement = $db->query($sql);
    $res =  $statement->execute();

    if($res instanceof ResultInterface && $res->isQueryResult()){
        $resultSet = new ResultSet;
        $resultSet->initialize($res);

        foreach($resultSet as $row){
            echo $row->title . PHP_EOL;
        }
    }
    exit;

    /*
    return new ViewModel(array(
        'books' => $this->getBooksTable()->fetchAll(),
    ));
    */
 }

在Web浏览器中打开上述控制器时,它不会显示任何内容。如果我在if语句之前回显“Blahh ..”,它会正确显示“Blahh ..”文本。

有谁知道为什么它不能正确显示查询结果? THX。

1 个答案:

答案 0 :(得分:1)

尝试将其添加到控制器的顶部:

use Zend\Db\Adapter\Driver\ResultInterface;
use Zend\Db\ResultSet\ResultSet;