use*_*592 2 php zend-framework2
我需要计算MySql查询的结果行.这里我把TableGateway课程扩展到我的班级这是我的代码.
public function get_num_of_rows(){
$sql = 'SELECT count(q_no) FROM questions';
//code ????????????????
$result = $this->select();
return $result;
}
Run Code Online (Sandbox Code Playgroud)
那我怎么执行SELECT count(q_no) FROM questions?
vim*_*083 10
如果您的表有大量记录,如果您使用,可能会出现内存错误
$result->count();
Run Code Online (Sandbox Code Playgroud)
相反,使用它,你可以避免相同
$select->from('TABLE_NAME')->columns(array('COUNT'=>new \Zend\Db\Sql\Expression('COUNT(*)')));
Run Code Online (Sandbox Code Playgroud)
没有必要编写自己的SQL查询.当您执行$ this-> select()时,您将获得Zend\Db\ResultSet\ResultSet的实例.ResultSet有方法计数.
$result = $this->select();
return $result->count();
Run Code Online (Sandbox Code Playgroud)
但是不要忘记添加'options' => array('buffer_results' => true)到数据库适配器.
更新:
这是我曾经写过的最愚蠢的事情.始终从资源返回仅需要数据.在这里你只需要1个标量.所以/sf/answers/966712281/是正确的.