Yii框架:如何获取num_rows?

Sli*_*liq 5 yii

由于官方文档没有说明如何使用他们的系统简单地"num_rows",我需要一些帮助:如何获得结果集中的行数?

ews*_*001 14

假设:

$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
Run Code Online (Sandbox Code Playgroud)

这将适用于插入,更新和删除:

$rowCount=$command->execute();
Run Code Online (Sandbox Code Playgroud)

execute():执行非查询SQL语句,例如INSERT,UPDATE和DELETE.如果成功,则返回受执行影响的行数.

对于select,您可以执行以下操作:

$dataReader=$command->query();
Run Code Online (Sandbox Code Playgroud)

这将生成CDbDataReader实例,CDbDataReader提供rowCount属性

http://www.yiiframework.com/doc/api/1.1/CDbDataReader#rowCount-detail

$rowCount = $dataReader->rowCount;
Run Code Online (Sandbox Code Playgroud)

关于rowCount =>返回结果集中的行数.请注意,大多数DBMS可能无法提供有意义的计数.在这种情况下,使用"SELECT COUNT(*)FROM tableName"来获取行数.


JRR*_*JRR 5

ActiveRecord具有可以使用的计数方法.

$cntCriteria = new CDbCriteria();
$cntCriteria->condition = "categoryId = :categoryId";
$cntCriteria->params[':categoryId'] = $categoryRow->categoryId;
$articleCount = Article::model()->count($cntCriteria);
Run Code Online (Sandbox Code Playgroud)