5

公式ドキュメントには、システムで単純に「num_rows」を実行する方法が記載されていないため、ここでいくつかのヘルプが必要です。結果セットの行数を取得する方法は?

4

3 に答える 3

14

仮定:

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

これは、挿入、更新、および削除で機能します。

$rowCount=$command->execute();

execute():INSERT、UPDATE、DELETEなどの非クエリSQLステートメントを実行します。成功すると、実行の影響を受ける行数が返されます。

selectの場合、次のように実行できます。

$dataReader=$command->query();

これにより、CDbDataReaderインスタンスが生成され、CDbDataReaderはrowCountプロパティを提供します

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

$rowCount = $dataReader->rowCount;

rowCountについて=>結果セットの行数を返します。ほとんどのDBMSは意味のあるカウントを与えないかもしれないことに注意してください。この場合、「SELECT COUNT(*)FROM tableName」を使用して、行数を取得します。

于 2012-10-18T17:22:57.503 に答える
5

ActiveRecordには、使用できるcountメソッドがあります。

$cntCriteria = new CDbCriteria();
$cntCriteria->condition = "categoryId = :categoryId";
$cntCriteria->params[':categoryId'] = $categoryRow->categoryId;
$articleCount = Article::model()->count($cntCriteria);
于 2013-05-04T07:06:30.003 に答える
0

これを行うもう1つの方法があります。SQLクエリを実行すると、結果は配列のみとして返されます。count()したがって、以下のような関数を使用して行数を取得できます。

$output=User::model()->findAllBySql("select * from user");//User is a model belongs to the user table
$count_val=count($output);//$count_val has the value of number of rows in the output.
于 2014-07-30T05:27:57.087 に答える