Yii Framework: How to get the num_rows?

yii
12,828

Solution 1

Assuming:

$connection=Yii::app()->db;
$command=$connection->createCommand($sql);

This will work for insert, update and delete:

$rowCount=$command->execute();

execute(): performs a non-query SQL statement, such as INSERT, UPDATE and DELETE. If successful, it returns the number of rows that are affected by the execution.

For select, you could do the following:

$dataReader=$command->query();

This generates the CDbDataReader instance and CDbDataReader provides a rowCount property

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

$rowCount = $dataReader->rowCount;

About rowCount => Returns the number of rows in the result set. Note, most DBMS may not give a meaningful count. In this case, use "SELECT COUNT(*) FROM tableName" to obtain the number of rows.

Solution 2

ActiveRecord has count method which can be used.

$cntCriteria = new CDbCriteria();
$cntCriteria->condition = "categoryId = :categoryId";
$cntCriteria->params[':categoryId'] = $categoryRow->categoryId;
$articleCount = Article::model()->count($cntCriteria);
Share:
12,828
Sliq
Author by

Sliq

Just a nice guy

Updated on June 14, 2022

Comments

  • Sliq
    Sliq almost 2 years

    As the official documentation does not say how to do a simply "num_rows" with their system, i need some help here: How to get the amount of rows in the result set ?