-
autoJoin()
指定したテーブルを連結します。連結方法はカラム名から自動で判断します。
つまり、table1 に "table2_id" というカラムがあったとすると、
このメソッドは "WHERE table1.table2_id=table2.id" とします。
ここで作成される結合条件は、すべて AND で連結されます。
-
getDbInstance()
PEAR::DB オブジェクトを返します。
-
setDbInstance()
既存の PEAR::DB オブジェクトを MDB_QueryTool に渡します。
-
get($id, $column)
単一のエントリのデータを取得します。
二番目のパラメータにカラムをひとつだけ指定した場合は、
結果は配列ではなく直接返されます!
-
getMultiple($ids, $column)
get() と同じですが、
配列 $ids に対応するすべてのデータを取得します。
-
getAll()
データベースのすべてのエントリを取得します。
-
getCol($column)
このメソッドはひとつのカラムのみを返すので、結果は一次元の配列となります。
つまり、setSelect() を使用する場合は、
取得したいそのカラムに対して「のみ」設定しなければならないということです。
一般的な使用法は次のようになります。
<?php
$table->setSelect('id');
$ids = $table->getCol();
// あるいは
$ids = $table->getCol('id');
?>
こうすると、ids はすべての id からなる配列となります。
-
getCount()
エントリの数を取得します。
-
getDefaultValues()
DB 内のカラムに対応する要素にすべて空の要素が格納された配列を返します。
-
getQueryString()
現在のクエリを文字列として返します。
-
save($data)
update() あるいは add()
のいずれかをコールしてデータを保存します。データ中で primaryCol
が指定されていた場合は、このメソッドは渡されたデータが更新されるべきものである
(update() をコールする) と判断します。
それ以外の場合は add() メソッドをコールします。
この挙動が気に入らない場合は、直接
add() および update()
を使用し、このメソッドは無視してください。このメソッドは、
新規登録時と更新時の両方で入力チェックを行う場合などに有用です。
このメソッドをオーバーライドしてここでチェックを行うようにすれば、
どちらの場合でもチェック処理が行われます。
-
update($data)
データセットのメンバを更新します。
-
add($data)
新しいメンバをデータベースに追加します。
-
addMultiple($data)
複数の新しいメンバをデータベースに追加します。
-
remove($data, $whereCol)
データベースからメンバを削除します。
data
は、削除されるカラムの値です
(integer/string)。配列を指定する場合は、一致する条件を指定する
複数のカラムを設定しなければなりません (この場合、
二番目のパラメータは無視されます)。
$whereCol
は、data と比較するカラムです。
data
が配列でない場合にのみ用いられます。
-
removeAll()
テーブルを空にします。
-
removeMultiple($ids, $colName)
指定した id のデータセットを削除します。colName
を指定した場合は、それを主キーのカラム名として使用します。
-
removePrimary($ids, $colName, $atLeastOneObject)
メンバをデータベースから削除し、指定したオブジェクトの
remove() メソッドをコールします。
これにより、このテーブルを参照している別のテーブルの行がすべて削除されます。
-
setLimit($from=0, $count=0)
その後のクエリでの取得件数の制限を設定します。
-
getLimit()
その後のクエリでの取得件数の制限値を取得します。
-
setWhere($whereCondition)
現在のインスタンスで使用する where 条件を設定します。
-
getWhere()
現在のインスタンスで使用する where 条件を取得します。
-
addWhere($whereCondition, $condition)
where 句に文字列を追加します。デフォルトの condition
は AND です。
-
addWhereSearch($column, $stringToSearch, $condition)
where-like 句を追加します。指定した文字列に対する like 検索を行います。つまり、
<?php
$this->addWhereSearch('name', 'otto hans')
?>
のようにコールすると、
UPPER(name) LIKE "%OTTO%HANS%"
のような where 句が作成され、指定した文字列に対する検索が行われます。
-
setOrder($orderCondition, $desc=FALSE)
現在のインスタンスで使用する order 条件を設定します。
-
getOrder()
現在のインスタンスで使用する order 条件を取得します。
-
addOrder($orderCondition, $desc=FALSE)
クエリで使用する order パラメータを追加します。
-
setHaving($havingCondition)
現在のインスタンスで使用する having 条件を設定します。
-
getHaving()
現在のインスタンスで使用する having 条件を取得します。
-
addHaving($what, $connectString)
クエリで使用する having パラメータを追加します。
-
setJoin($table, $where, $joinType)
現在のインスタンスで使用する join 条件を設定します。
-
setLeftJoin($table, $where)
$this->table に対する left join を設定します。
-
addLeftJoin($table, $where, $type)
クエリに left join を追加します。
-
setRightJoin($table, $where)
$this->table に対する right join を設定します。
-
getJoin($what)
join 条件を取得します。
-
addJoin($table, $where, $type)
join で使用するテーブルと where 条件を追加します。
<?php
setJoin(array(table1, table2), '<where clause1> AND <where clause2>');
?>
とコールするかわりに、
<?php
setJoin(table1,'<where clause1>');
addJoin(table2,'<where clause2>');
?>
とコールすることもできます。
-
setTable($table)
このクラスで現在作業中のテーブルを設定します。
-
getTable()
このクラスで現在作業中のテーブルを取得します。
-
setGroup($group)
group-by 条件を設定します。
-
getGroup()
group-by 条件を取得します。
-
setSelect($what)
what
で指定したカラムのみを結果で返すようにします。
-
addSelect($what, $connectString)
クエリの select 部に使用する文字列を追加します。既存の文字列に対して
connectString
を使用して連結されます。
このパラメータのデフォルトは、カンマです
("SELECT xxx FROM..." における xxx が、クエリの select 部です)。
-
getSelect()
クエリの select 部を取得します。
-
setDontSelect($what)
結果セットに含めないカラムを設定します。
-
getDontSelect()
結果セットに含めないカラムを取得します。
-
reset($what)
set* で設定した内容をすべてリセットします。パラメータを指定しなかった場合はすべてをリセットします。
-
setOption($option, $value)
クラスの動作モードを設定します。'raw' モードは、
クエリを作成する際にデータをクォートしません。
-
getOption($option)
指定したオプションを取得します。
-
debug($string)
このメソッドをオーバーライドし、queryString を表示することでクエリの内容を確認したりします。
-
getTableShortName($table)
テーブルの短縮名を取得します。
-
execute($query, $method)
クエリを実行します (query
が null
の場合は現在のクエリが実行されます)。
-
writeLog($text)
イベントをログファイルに書き込みます。
それ以外に時間の計測などの作業も行います。追加のドキュメントを参照ください。
-
returnResult($result)
選択した結果の型を返します。
-
setIndex($key)
結果をフォーマットし、key
でインデックス化します。
注意: これを使用する際には、同じ名前のインデックスを複数指定しないように気をつけましょう。
同じキーを複数回指定することはできないので、その場合はデータを失ってしまいます!
結果を 'brother' や 'sister' といった値を持つキー
('relationtoMe') でインデックス化すると、次のような結果が返されます。
<?php
$res['brother'] = array('name' => 'xxx');
$res['sister'] = array('name' => 'xxx');
?>
しかし、もしカラム 'relationtoMe' が 'brother'
というエントリを複数持っていた場合は、返されるデータセットにはそのうちひとつしか含まれません。
どれが返されるのかは、さまざまな条件に依存します。たとえば order
の指定、データベース内のデータの格納方法などです。
2 つのカラムに依存するインデックスを設定することもできます。そのためには、
'table1.id,table2.id' のようにパラメータを渡します。
これは、インデックス化する際の文字列として使用されます。インデックスは
2 つの値をもとに作成されるので、たとえば
'1,2' や '2108,29389' といった形になります。
この方法により、2 つの主キーからなるデータにアクセスできるようになります。
インデックスは文字列であることに注意しましょう!
-
getIndex()
インデックスを取得します。
-
useResult($type)
返される結果の型を選択します
('array'、'object'、'none')。
-
setErrorCallback($param)
両方のコールバックを設定します。
-
setErrorLogCallback($param)
エラーログ用のコールバックを設定します。
-
setErrorSetCallback($param)
エラーを設定するコールバックを設定します。