【问题标题】:NUM_ROWS Zend frameworkNUM_ROWS Zend 框架
【发布时间】:2014-05-19 15:47:53
【问题描述】:
我想知道如何使用 num_rows ZEND 1.12 实现查询
$db = Zend_Db_Table::getDefaultAdapter();
$db->setFetchMode(Zend_Db::FETCH_ASSOC);
$select = new Zend_Db_Select($db);
$select = $db->select()
->from('album', array('id', 'nombre'));
$result = $select->query();
$rows = $result->fetch();
此代码返回不完整的数据。不知道这样好不好。
【问题讨论】:
标签:
php
zend-framework
frameworks
【解决方案1】:
试试这个:
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$dbAdapter->setFetchMode(Zend_Db::FETCH_ASSOC);
/** @var Zend_Db_Select $select */
$select = $dbAdapter->select();
$select->from(
'album',
array(
'id',
'nombre'
)
);
//get the rowset
/** @var Zend_Db_Table_Rowset $rows */
$rows = $dbAdapter->fetchAll($select);
//get the number of rows returned from the rows object
$num_rows = $rows->count(); //OR count($rows)
但请注意,如果您在查询中使用限制,您将无法获得 db 表中的总行数。
//$select->limit(100); //will return 100 or less
如果您只想获取 db 表中的行数,请使用:
//get only a single columns value! (there has to be only one column in the select)
$select = $dbAdapter->select();
$select->from(
'album',
array(
'COUNT(*) AS num_rows'
)
);
//$select->where("nombre LIKE CONCAT('?','%')",array($search));
//$select->where("status > 0");
$num_rows = $dbAdapter->fetchCol($select);