NUM_ROWS Zend框架

时间:2014-05-19 15:47:53

标签: php zend-framework frameworks

我想知道如何使用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();

此代码返回不完整的数据。我不知道这是不是很好。

1 个答案:

答案 0 :(得分:0)

试试这个:

$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);