我想知道一个表中有多少行。我使用的数据库是 MySQL 数据库。我已经有一个用于调用的 Db_Table 类,例如fetchAll()
. 但我不需要表格中的任何信息,只需要行数。如何在不调用的情况下获取表中所有行的计数fetchAll()
?
问问题
22713 次
7 回答
27
$count = $db->fetchOne( 'SELECT COUNT(*) AS count FROM yourTable' );
于 2009-12-18T23:15:58.513 回答
8
计算fetchAll
被认为有害的行。
下面是如何使用 Zend_Db_Select 方式进行操作:
$habits_table = new Habits(); /* @var $habits_table Zend_Db_Table_Abstract */
$select = $habits_table->select();
$select->from($habits_table->info(Habits::NAME), 'count(*) as COUNT');
$result = $habits_table->fetchRow($select);
print_r($result['COUNT']);die;
于 2009-12-18T23:10:03.360 回答
5
正确的 Zend-Way 是像这样使用 Zend_Db_Select :
$sql = $table->select()->columns(array('name', 'email', 'status'))->where('status = 1')->order('name');
$data = $table->fetchAll($sql);
$sql->reset('columns')->columns(new Zend_Db_Expr('COUNT(*)'));
$count = $table->getAdapter()->fetchOne($sql);
这就是它在 Zend_Paginator 中的完成方式。其他选项是SQL_CALC_FOUND_ROWS
在列列表之前添加,然后使用此查询获取找到的行数:
$count = $this->getAdapter()->fetchOne('SELECT FOUND_ROWS()');
于 2011-05-15T12:28:16.980 回答
3
你可以做一个
SELECT COUNT(*)
FROM your_table
于 2009-12-18T21:22:28.873 回答
3
$dbo->setFetchMode( Zend_Db::FETCH_OBJ );
$sql = 'SELECT COUNT(*) AS count FROM @table';
$res = $dbo->fetchAll( $sql );
// $res[0]->count contains the number of rows
于 2009-12-18T21:22:42.747 回答
2
向 Zend_DB 对象添加计数功能来计算所有表行
public function count()
{
return (int) $this->_table->getAdapter()->fetchOne(
$this->_table->select()->from($this->_table, 'COUNT(id)')
);
}
于 2011-05-14T17:47:09.007 回答
2
我是一个极简主义者:
public function count()
{
$rows = $db->select()->from($db, 'count(*) as amt')->query()->fetchAll();
return($rows[0]['amt']);
}
可以在所有表上通用。
于 2012-05-10T20:15:52.503 回答