嗨,我是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。
答案 0 :(得分:1)
尝试将其添加到控制器的顶部:
use Zend\Db\Adapter\Driver\ResultInterface;
use Zend\Db\ResultSet\ResultSet;