->count()

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

概要

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

説明

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

パラメータ

返り値

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

注意

この関数は、スタティックにコールする ことはできません。

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


<?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";

?>

例 33-2結果の 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%';