->count()

->count() – select count() リクエストを実行する

Synopsis

int $DB_DataObject->count ( string|boolean $countWhat|$whereAddOnly , boolean $whereAddOnly )

Description

これは、表のキーカラムによる select count() リクエストを実行し、 結果の行数を返します。 count() に適用されるデフォルトの条件は、オブジェクト変数と whereAdd の設定内容の組み合わせです。 もし、定数 DB_DATAOBJECT_WHEREADD_ONLY が第1パラメータに指定された場合、 whereAdd の設定内容だけが使用されます。

Parameter

  • string $countWhat - デフォルトカウントは、主キーをカウントします。 もし何か他をカウントする必要がある場合で、単純に DISTINCT を指定する場合は DISTINCT を前に付けた主キーをカウントします。 その他の場合は独自の値をカウントします (エスケープが必要な場合、忘れないようにしてください) 。

  • boolean $useWhereAddOnly - whereAdd 条件のみ使用するかどうかを指定します (デフォルトでは、count オブジェクトの設定内容と whereAdd の条件の両方が使用されます) 。

Return value

int|false - 結果の数もしくは失敗時に false

Note

This function can not be called statically.

Example

オブジェクト変数に基づいたデータの簡単な検索とフェッチ

<?php

/* using property values */
$person = new DataObjects_Person;
$person->name  "test"
$total $person->count();
echo 
"There are {$total} people with a name like test";

/* using countWhat */
$person = new DataObjects_Person;
$total $person->count('DISTINCT name');
echo 
"There are {$total} names in the database";

/* using countWhat value = DISTINCT */
$person = new DataObjects_Person;
$total $person->count('DISTINCT');
echo 
"There are {$total} names in the database";

/* using whereOnly */
$person = new DataObjects_Person;
$person->name "test";
$person->whereAdd("name like '%test%");
$total $person->count(DB_DATAOBJECT_WHEREADD_ONLY);
echo 
"There are {$total} names in the database";

?>

結果の SQL


SELECT count(person.id) AS DATAOBJECT_NUM
    FROM person
    WHERE person.name = 'test';

SELECT count(DISTINCT name) AS DATAOBJECT_NUM
    FROM person;

SELECT count(DISTINCT person.id) AS DATAOBJECT_NUM
    FROM person;

SELECT count(person.id) AS DATAOBJECT_NUM
    FROM person
    WHERE name like '%test%';
次の行をフェッチする (Previous) 現在のオブジェクト変数をデータベースに挿入する (Next)
Last updated: Tue, 29 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.