Zend/Db/Sqlの変更点

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • 移動:バックアップ
  • 最新のバージョン:2014-04-09 16:00:45
  • バージョン:(Rev:mhvkb6Qy6P)2014-04-09 14:41:35

OldNew差分
11#contents
22*Insert [#briuNCF]
33Zend\Db\Sql\Sqlクラスのinsertメソッドから呼び出される。
4-
4+
55**基本的な利用方法 [#EMRsbFQ]
66#sh(php){{
77$sql = new Zend\Db\Sql\Sql($adapter);
1313 INSERT INTO `test` (`id`, `name`) VALUES ('1', 'hoge')
1414** コンストラクタ [#ulEBVHO]
1515:引数|string|TableIdentifier $table
16-
16+
1717テーブル名を指定する、intoメソッドが優先される
1818#sh(php){$insert=$sql->insert("test");}
19-
19+
2020** intoメソッド [#5bfgHXP]
2121:引数|string|TableIdentifier $table
22-
22+
2323テーブル名を指定する
2424#sh(php){$insert->into("test");}
25-
25+
2626** columns [#6tEUBn8]
2727:引数|array $columns
28-
28+
2929カラム名を指定する。
3030&color(#FF0000){''Zend 2.3現在、columnsメソッドより後にvaluesメソッドを呼び出し、かつ第二引数にself::VALUES_SETを設定するか第二引数を省略した場合、columns設定値が消失する''};
3131#sh(php){{
3232$insert->columns(array("id", "name", "value"));
3333}}
34-
34+
3535** values [#o66wZrF]
3636:引数|array|Select $values
3737string $flag VALUES_MERGE|VALUES_SET を指定、デフォルトはVALUES_SET
38-
38+
3939Insertする値の設定を行う
4040#sh(php){{
4141$insert->values(array("id"=>"1","name"=>"hoge"));
4242}}
43-
44-
43+
44+
4545** select [#KMCZP0n]
4646:引数|Select $select
47-
47+
4848valuesメソッドが呼び出される。以下と全く同じである。
4949#sh(php){$insert->values($select);}
50-
51-
50+
51+
5252** getRawState [#sXaDmpJ]
5353:引数|string $key
54-
54+
5555table名、columns設定値、values設定値を返す。
5656#sh(php){{
5757// テーブル情報を返す
6363// 上記のすべてを連想配列で返す
6464$insert->getRawState();
6565}}
66-
66+
6767* Select [#8hdU3yM]
6868Zend\Db\Sql\Sqlクラスのselectメソッドから呼び出される。
6969**基本的な利用方法 [#5ljzdHF]
7979 SELECT `test`.`rev_id` AS `id`, `test`.`rev_name` AS `name`, `test`.`rev_value` AS `value` FROM `test` WHERE `name` = 'yamada' AND value > 100 LIMIT 1
8080** コンストラクタ [#U0lUGlM]
8181:引数|null|string|array|TableIdentifier $table
82-
82+
8383テーブル名を指定する
8484ここで指定するとread onlyになり、fromから指定できなくなる
85-
85+
8686** from [#vHKbmez]
8787:引数|string|array|TableIdentifier $table
88-
88+
8989テーブル名を指定する
9090コンストラクタで指定した場合、指定できない
91-
91+
9292** quantifier [#wh64NXe]
9393:引数|string|Expression $quantifier DISTINCT|ALL
94-
94+
9595DISTINCT属性を設定するか。
96-
96+
9797** columns [#StzSgn0]
9898:引数|array $columns
99-
99+
100100selectするカラム名を指定する
101101連想配列の場合、''key値がエイリアス名''になる。
102102#sh(php){$select->columns(array("*"));}
105105 `test`.`id` AS `id`, `test`.`name` AS `name`, `test`.`value` AS `value`
106106#sh(php){$select->columns(array("id"=>"rev_id", "name"=>"rev_name", "value"=>"rev_value"));}
107107 `test`.`rev_id` AS `id`, `test`.`rev_name` AS `name`, `test`.`rev_value` AS `value`
108-
108+
109109** join [#slAKJ1d]
110110:引数|string|array $name
111111string $on
112112string|array $columns
113113string $type JOIN_*の中から一つ
114-
114+
115115結合設定
116116JOIN_INNER、JOIN_OUTER、JOIN_LEFT、JOIN_RIGHTの4種類が指定可能
117117#sh(php){$select->join("test2", "test.id = test2.id", Zend\Db\Sql\Select::SQL_STAR, Zend\Db\Sql\Select::JOIN_LEFT);}
118118 `test2`.* FROM `test` LEFT JOIN `test2` ON `test`.`id` = `test2`.`id`
119119#sh(php){$select->join("test2", "test.id = test2.id", array("id", "name", "age"), Zend\Db\Sql\Select::JOIN_LEFT);}
120120 `test2`.`id` AS `id`, `test2`.`name` AS `name`, `test2`.`age` AS `age` FROM `test` LEFT JOIN `test2` ON `test`.`id` = `test2`.`id`
121-
121+
122122** where [#LrEKQK5]
123123:引数|Where|\Closure|string|array|Predicate\PredicateInterface $predicate
124124string $combination Predicate\PredicateSetで定義されている OP_* の中から一つ
128128 WHERE `id` = '1' AND `name` = 'yamada'
129129#sh(php){$select->where(array("id"=>1, "name"=>"yamada"), Zend\Db\Sql\Predicate\PredicateSet::OP_OR);}
130130 WHERE `id` = '1' OR `name` = 'yamada'
131-Predicate\PredicateSet(__getを使っているのが若干不安ではあるが、指定するメソッドが見当たらない)
131+Predicate\PredicateInterface
132132#sh(php){{
133133$nest = $select->where->nest();
134-$nest->equalTo("name", "yamada");
135-$nest->__get(Zend\Db\Sql\Predicate\PredicateSet::OP_OR);
136-$nest->equalTo("age", "20");
134+ $nest->equalTo("name", "yamada");
135+ $nest->OR->equalTo("age", "20");
137136$nest->unnest();
138137}}
139138 WHERE (`name` = 'yamada' OR `age` = '20')
140139#sh(php){{
141140$nest = $select->where->nest();
142141 $nest2_1 = $nest->nest();
143- $nest2_1->equalTo("name", "yamada");
144- $nest2_1->__get(Zend\Db\Sql\Predicate\PredicateSet::OP_OR);
145- $nest2_1->equalTo("name", "tanaka");
142+ $nest2_1->equalTo("name", "yamada");
143+ $nest2_1->OR->equalTo("name", "tanaka");
146144 $nest2_1->unnest();
147-$nest->__get(Zend\Db\Sql\Predicate\PredicateSet::OP_AND);
148- $nest2_2 = $nest->nest();
149- $nest2_2->equalTo("age", "10");
150- $nest2_2->__get(Zend\Db\Sql\Predicate\PredicateSet::OP_OR);
151- $nest2_2->equalTo("age", "20");
145+ $nest2_2 = $nest->AND->nest();
146+ $nest2_2->equalTo("age", "10");
147+ $nest2_2->OR->equalTo("age", "20");
152148 $nest2_2->unnest();
153149$nest->unnest();
154150}}
155151 WHERE ((`name` = 'yamada' OR `name` = 'tanaka') AND (`age` = '10' OR `age` = '20'))
152+#sh(php){$select->where->NEST->equalTo("name", "yamada")->OR->equalTo("age", "20")->UNNEST;}
153+ WHERE (`name` = 'yamada' OR `age` = '20')
154+#sh(php){{
155+$select->where->NEST
156+ ->NEST
157+ ->equalTo("name", "yamada")
158+ ->OR->equalTo("name", "tanaka")
159+ ->UNNEST
160+ ->AND->NEST
161+ ->equalTo("age", "10")
162+ ->OR->equalTo("age", "20")
163+ ->UNNEST
164+->UNNEST;
165+}}
166+ WHERE ((`name` = 'yamada' OR `name` = 'tanaka') AND (`age` = '10' OR `age` = '20'))
156167** group [#8OTtXtP]
157168:|引数|string|array
158-
169+
159170グループ設定
160171#sh(php){$select->group("name");}
161172 GROUP BY `name`
162-
173+
163174** having [#aDnoqCD]
164175:引数|Where|\Closure|string|array $predicate
165176string $combination One of the OP_* constants from Predicate\PredicateSet
166-
177+
167178#sh(php){$select->having(array("age"=>10, "weight"=>20));}
168179 HAVING `age` = '10' AND `weight` = '20'
169-
180+
170181** order [#LBspsa8]
171182:引数|string|array $order
172-
183+
173184オーダー設定
174185#sh(php){$select->order("name DESC");}
175186 ORDER BY `name` DESC
176187#sh(php){$select->order("name ASC");}
177188 ORDER BY `name` ASC
178-
189+
179190** limit [#jolzJvg]
180191:引数|int $limit
181-
192+
182193Limit設定
183194#sh(php){$select->limit(1);}
184195 LIMIT 1
185-
196+
186197** offset [#zD1URqW]
187198:引数|int $offset
188-
199+
189200Offset設定
190201#sh(php){$select->offset(3);}
191202 OFFSET 3
193204:引数|Select $select
194205string $type
195206string $modifier
196-
207+
197208* Delete [#FY0yK4i]
198209Zend\Db\Sql\Sqlクラスのdeleteメソッドから呼び出される。
199210**基本的な利用方法 [#lBWhe9H]
200-** コンストラクタ [#qNzPl6x]
201-
211+** コンストラクタ [#AiHrSi5]
212+:引数|null|string|TableIdentifier $table
213+
214+テーブル名を指定する、fromメソッドが優先される
215+
216+** from [#8EVuCLJ]
217+:引数|string|TableIdentifier $table
218+
219+テーブル名を指定する
220+
221+**where [#F1VAe0W]
222+[[selectメソッドのwhere>Zend/Db/Sql#LrEKQK5]]を参照のこと。
223+
202224* Update [#wj5CLPO]
203225Zend\Db\Sql\Sqlクラスのupdateメソッドから呼び出される。
204226**基本的な利用方法 [#nmLH3Nz]
205227** コンストラクタ [#IEdT5sD]
228+:引数|null|string|TableIdentifier $table
229+
230+テーブル名を指定
231+
232+**table [#2Kz2hCu]
233+:引数|string|TableIdentifier $table
234+
235+テーブル名を指定
236+
237+**set [#EgjEkNU]
238+:引数|array $values 連想配列
239+string $flag VALUES_*の値
240+
241+**where [#ufoF0Ek]
242+[[selectメソッドのwhere>Zend/Db/Sql#LrEKQK5]]を参照のこと。
スポンサー