Jul 31
逆引きrhaco36: データベースから値を取り出す(select)
rhacoが1.4.9、1.5.0にアップしたので記事を見直すと現状で使えないものがチラホラあります><。少しずつ直していきます。
今回はselectを発行します。
1.単純に全て取得
テーブルへの操作はDbUtilクラス(database.DbUtil)を用いて行います。
Rhaco::import('database.DbUtil');
Rhaco::import('model.Product');
$db = new DbUtil(Product::connection());
$result = $db->select(new Product());
ここで
Product::connection()
がProductテーブルを持つデータベースへの接続情報となります。rhacoはテーブルモデルごとにconnection()を持つことで、複数データベースに対応しています。
2.条件を指定して取得
条件の指定にはCriteriaクラス(database.model.Criteria)とCriterionクラス(database.model.Criterion)を使います。いちいちCriteria, Criterionと書くのは面倒なので、ショートカットとしてそれぞれC(abbr.C), Q(abbr.Q)が用意されています。このクラスはDbUtilをインポートした時に同時にインポートされます。
Rhaco::import('database.DbUtil');
Rhaco::import('model.Product');
$db = new DbUtil(Product::connection());
$result = $db->select(new Product(),new Criteria(Criterion::equal(Product::columnName(),'hoge')));
これで「Productテーブルのnameカラムがhogeのデータを取得する」ことが出来ます。
コードを見れば分るように条件は
Criteria(Criterion)
という書き方をします。複数条件がある場合は
Criteria(Criterion, Criterion, Criterion, ...)
と書いていきます。これからはCriteria, Criterionの代わりにC, Qを使っていきます(面倒なのでw)
このエントリーのはてなブックマーク (