2013.
06.
25
15:52:18
FuelPHPではクエリビルダなるものを使えば、SQLがほぼそのまま実行できるらしい。
そいつを見ていこうってのが今回のテーマです。
前準備として、テストデータを作成しておきますかねφ(--)
■tbl_test01
■tbl_test02
まずは基本ですが、DBクラスのあれやこれやを使うらしい。
一番基本的なクエリの発行は
のように「DB::query()」でクエリを作って「execute()」で実行。
ただし
select → DB::select()
insert → DB::insert()
update → DB::update()
delete → DB::delete()
のようにそれぞれ専用のクエリ生成メソッドがあるので普通はそっちを使うらしい。
そして
のように、対象とするテーブルだとか検索条件だとかをくっつけていくことで
任意のクエリを作ることができるのだそうな。
と言うことは
1.どのように書けば実行したいクエリになるのか
2.どのように実行するとどのような結果が返却されるのか
を理解すればクエリビルダはマスターってことですかね。
次回は検索関連を見ていくことにします(--)ノ
そいつを見ていこうってのが今回のテーマです。
前準備として、テストデータを作成しておきますかねφ(--)
■tbl_test01
CREATE TABLE IF NOT EXISTS `tbl_test01` (
`pk_id` int(10) NOT NULL AUTO_INCREMENT,
`column_varchar01` varchar(255) DEFAULT NULL,
`column_int02` int(10) DEFAULT NULL,
`column_varchar02` varchar(255) DEFAULT NULL,
PRIMARY KEY (`pk_id`),
KEY `pk_id2` (`pk_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
`pk_id` int(10) NOT NULL AUTO_INCREMENT,
`column_varchar01` varchar(255) DEFAULT NULL,
`column_int02` int(10) DEFAULT NULL,
`column_varchar02` varchar(255) DEFAULT NULL,
PRIMARY KEY (`pk_id`),
KEY `pk_id2` (`pk_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
INSERT INTO `tbl_test01` (`pk_id`, `column_varchar01`, `column_int02`,
`column_varchar02`) VALUES
(1, 'あああ', 10, 'いいい'),
(2, 'あああ', 10, 'いいい'),
(3, 'あああ2', 11, 'いいい2'),
(4, 'あああ2', 11, 'いいい2'),
(5, 'あああ3', 10, 'いいい3'),
(6, 'あああ3', 10, 'いいい3'),
(7, 'あああ3', 10, 'いいい3'),
(8, 'あああ4', 12, 'いいい4'),
(9, 'あああ4', 12, 'いいい4'),
(10, 'あああ5', 13, 'いいい5');
`column_varchar02`) VALUES
(1, 'あああ', 10, 'いいい'),
(2, 'あああ', 10, 'いいい'),
(3, 'あああ2', 11, 'いいい2'),
(4, 'あああ2', 11, 'いいい2'),
(5, 'あああ3', 10, 'いいい3'),
(6, 'あああ3', 10, 'いいい3'),
(7, 'あああ3', 10, 'いいい3'),
(8, 'あああ4', 12, 'いいい4'),
(9, 'あああ4', 12, 'いいい4'),
(10, 'あああ5', 13, 'いいい5');
■tbl_test02
CREATE TABLE IF NOT EXISTS `tbl_test02` (
`pk_id2` int(10) NOT NULL AUTO_INCREMENT,
`test01_pk` int(10) DEFAULT NULL,
`column_varchar21` varchar(255) DEFAULT NULL,
`column_int22` int(10) DEFAULT NULL,
`column_varchar22` varchar(255) DEFAULT NULL,
PRIMARY KEY (`pk_id2`),
KEY `pk_id2` (`pk_id2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
`pk_id2` int(10) NOT NULL AUTO_INCREMENT,
`test01_pk` int(10) DEFAULT NULL,
`column_varchar21` varchar(255) DEFAULT NULL,
`column_int22` int(10) DEFAULT NULL,
`column_varchar22` varchar(255) DEFAULT NULL,
PRIMARY KEY (`pk_id2`),
KEY `pk_id2` (`pk_id2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `tbl_test02` (`pk_id2`, `test01_pk`, `column_varchar21`,
`column_int22`, `column_varchar22`) VALUES
(1, 1, 'アアア', 20, 'イイイ'),
(2, 1, 'アアア2', 21, 'イイイ2'),
(3, 2, 'アアア2', 90, 'イイイ2'),
(4, 3, 'アアア3', 90, 'イイイ3');
`column_int22`, `column_varchar22`) VALUES
(1, 1, 'アアア', 20, 'イイイ'),
(2, 1, 'アアア2', 21, 'イイイ2'),
(3, 2, 'アアア2', 90, 'イイイ2'),
(4, 3, 'アアア3', 90, 'イイイ3');
まずは基本ですが、DBクラスのあれやこれやを使うらしい。
一番基本的なクエリの発行は
$q = DB::query('DELETE FROM tbl_test01;');
$q->execute();
$q->execute();
のように「DB::query()」でクエリを作って「execute()」で実行。
ただし
select → DB::select()
insert → DB::insert()
update → DB::update()
delete → DB::delete()
のようにそれぞれ専用のクエリ生成メソッドがあるので普通はそっちを使うらしい。
そして
$q = DB::select();
$q->from('tbl_test01');
$q->where('column_varchar01', '=', 'あああ');
$result = $q->execute()->as_array();
$q->from('tbl_test01');
$q->where('column_varchar01', '=', 'あああ');
$result = $q->execute()->as_array();
のように、対象とするテーブルだとか検索条件だとかをくっつけていくことで
任意のクエリを作ることができるのだそうな。
と言うことは
1.どのように書けば実行したいクエリになるのか
2.どのように実行するとどのような結果が返却されるのか
を理解すればクエリビルダはマスターってことですかね。
次回は検索関連を見ていくことにします(--)ノ