CIフレームワークでのAR操作、ciarのコードの一部
モデル層
リーリー
CI の DB_active_rec.php クラスの一部のメソッドのアノテーション (引き続き追加されます)

1 php
2 クラス CI_DB_active_record
3 {
4 /**
5 *ゲット
6 * @author zhaoyingnan 2015-10-14 12:50
7 * @param string $table 操作対象のテーブル
8 * @param int $limit 制限値
9 * @param int $offset オフセット値
10 * @return オブジェクト
11 **/
12 public function get(
$table = '',
$limit =
null,
$offset =
null)
13 {}
14
15/**
16 * get_where
17 * @著者 zhaoyingnan 2015-10-14 12:58
18 * @param string $table 操作対象のテーブル
19 * @param array $where where 句
20 * @param int $limit 制限値
21 * @param int $offset オフセット値
22 * @return オブジェクト
23 **/
24 public function get_where(
$table = '',
$where =
null,
$limit =
null,
$offset =
)
25 {}
26
27/**
28 * 選択
29 * @著者 zhaoyingnan 2015-10-14 13:13
30 * @param string $select クエリ フィールド (カンマ区切り)
31 * @param boolean $escape FALSE に設定すると、CodeIgniter はフィールド名またはテーブル名を保護するためにバッククォートを使用しません。これは、複合クエリを作成するときに便利です。 32 * @return オブジェクト
33 **/
34 public function select(
$select = '*',
$escape =
NULL)
35 {}
36
37/**
38 * クエリの SELECT MAX(field) 部分* @description
39 * @著者zhaoyingnan 2015-10-14 13:20
40 * @param string $select max(field) 作用列
41 * @param string $alias 别名
42 * @return オブジェクト
43 **/
44 public function select_max(
$select = '',
$alias = ''
)
45 {}
46
47 /**
48 * クエリの SELECT MIN(field) 部分
49 * @著者zhaoyingnan 2015-10-14 13:20
50 * @param string $select min(field) 作用列
51 * @param string $alias 别名
52 * @return オブジェクト
53 **/
54 public function select_min(
$select = '',
$alias = ''
)
55 {}
56
57 /**
58 * クエリの SELECT AVG(field) 部分
59 * @著者zhaoyingnan 2015-10-14 13:20
60 * @param string $select AVG(field) 作用列
61 * @param string $alias 别名
62 * @return オブジェクト
63 **/
64 public function select_avg(
$select = '',
$alias = ''
)
65 {}
66
67 /**
68 * クエリの SELECT SUM(field) 部分
69 * @著者zhaoyingnan 2015-10-14 13:20
70 * @param string $select SUM(field) 作用列
71 * @param string $alias 别名
72 * @return オブジェクト
73 **/
74 public function select_sum(
$select = '',
$alias = ''
)
75 {}
76
77
78 /**
79 * @description
80 * @著者 zhaoyingnan 2015-10-14 13:26
81 * @param string $from 表名
82 * @return オブジェクト
83 **/
84 パブリック 関数 from(
$from)
85 {} 86
87/**
88 * ここで
89 * @author zhaoyingnan 2015-10-14 13:31
90 * @param mix $key は配列のキー値を渡します
91 * @param mix $value は配列のキーに対応する値を渡します
92 * @return オブジェクト
93 **/
94 public function where(
$key,
$value =
NULL,
$escape =
TRUE)
95 {
96 //1、単純なキー/値メソッド:
97 //$this->db->where('name', $name);
98 //生成: WHERE name = 'ジョー'
99
100 //2. カスタムキー/値メソッド:
101 //$this->db->where('name !=', $name);
102 //$this->db->where('id <', $id);
103 //生成: WHERE name != 'Joe' AND id < 45
104
105 //3. 連想配列メソッド:
106 //$array = array('name' => $name, 'title' => $title, 'status' => $status);
107 //$this->db->where($array);
108 //生成: WHERE 名前 = 'ジョー' AND タイトル = 'ボス' AND ステータス = 'アクティブ'
109 //このメソッドを使用するときに演算子を含めることもできます。
110 //$array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);
111
112 //4. カスタム文字列:
113 //$where = "名前='ジョー' AND ステータス='ボス' OR ステータス='アクティブ'";
114 //$this->db->where($where);
115 return $this->_where($key, $value, 'AND ', $escape);
116 }
117
118 /**
119 * ここで
120 * @author zhaoyingnan 2015-10-14 13:31
121 * @param mix $key は配列のキー値を渡します
122 * @param mix $value は配列のキーに対応する値を渡します
123 * @return オブジェクト
124 **/
125 public function or_where($key, $value = NULL, $escape = TRUE)
126 {
127 //参照先
128 return $this->_where($key, $value, 'OR ', $escape);
129 }
130
131
132 /**
133 * where_in
134 * @著者zhaoyingnan 2015-10-14 13:58
135 * @param string $key クエリ対象の列
136 * @param string $values 列の値の範囲
137 * @return オブジェクト
138 **/
139 public function where_in($key = NULL, $values = NULL)
140 {
141 return $this->_where_in($key, $values);
142 }143
144 /**
145 * or_where_in
146 * @著者zhaoyingnan 2015-10-14 13:58
147 * @param string $key クエリ対象の列
148 * @param string $values 列の値の範囲
149 * @return オブジェクト
150 **/
151 public function or_where_in($key = NULL, $values = NULL)
152 {
153 return $this->_where_in($key, $values, FALSE, 'OR ');
154 }
155
156 /**
157 * どこではない
158 * @著者zhaoyingnan 2015-10-14 13:58
159 * @param string $key クエリ対象の列
160 * @param string $values 列の値の範囲
161 * @return オブジェクト
162 **/
163 public function where_not_in($key = NULL, $values = NULL)
164 {
165 return $this->_where_in($key, $values, TRUE);
166 }
167
168 /**
169 * or_where_not_in
170 * @著者zhaoyingnan 2015-10-14 13:58
171 * @param string $key クエリ対象の列
172 * @param string $values 列の値の範囲
173 * @return オブジェクト
174 **/
175 public function or_where_not_in($key = NULL, $values = NULL)
176 {
177 return $this->_where_in($key, $values, TRUE, 'OR ');
178 }
179
180 /**
181 * までにご注文ください
182 * @著者zhaoyingnan 2015-10-14 13:35
183 * @param string $orderby ソートする列
184 * @param string $direction asc または desc
185 * @return オブジェクト
186 **/
187 public function order_by($orderby, $direction = '')
188 {}
189
190 /**
191 * 参加する
192 * @著者zhaoyingnan 2015-10-14 14:07
193 * @param string $table テーブル名
194 * @param string $cond 条件
195 * @param string $type オプションには、左、右、外側、内側、左外側、および右外側が含まれます。
196 * @return
197 **/
198 public function join($table, $cond, $type = '')
199 {}200
201 /**
202 *いいね!
203 * @著者zhaoyingnan 2015-10-14 14:28
204 * @param stringi $field 列が間違っています
205 * @param mix $match ルール
206 * @param mix $side ワイルドカード (%) の位置 使用可能なオプションは、'before'、'after'、および 'both' (これがデフォルトです)
207 * @return オブジェクト
208 **/
209 public function like($field, $match = '', $side = '両方')
210 {
211 return $this->_like($field, $match, 'AND ', $side);
212 }
213
214 /**
215 * 似てない
216 * @author zhaoyingnan 2015-10-14 14:28
217 * @param stringi $field 列が間違っています
218 * @param mix $match ルール
219 * @param mix $side ワイルドカード (%) の位置 使用可能なオプションは、'before'、'after'、および 'both' (これがデフォルトです)
220 * @return オブジェクト
221 **/
222 public function not_like($field, $match = '', $side = '両方')
223 {
224 return $this->_like($field, $match, 'AND ', $side, 'NOT');
225 }
226
227 /**
228 * or_like
229 * @著者zhaoyingnan 2015-10-14 14:28
230 * @param stringi $field 列が間違っています
231 * @param mix $match ルール
232 * @param mix $side ワイルドカード (%) の位置 使用可能なオプションは、'before'、'after'、および 'both' (これがデフォルトです)
233 * @return オブジェクト
234 **/
235 public function or_like($field, $match = '', $side = '両方')
236 {
237 return $this->_like($field, $match, 'OR ', $side);
238 }
239
240 /**
241 * or_not_like
242 * @著者zhaoyingnan 2015-10-14 14:28
243 * @param stringi $field 列が間違っています
244 * @param mix $match ルール
245 * @param mix $side ワイルドカード (%) の位置 使用可能なオプションは、'before'、'after'、および 'both' (これがデフォルトです)
246 * @return オブジェクト
247 **/
248 public function or_not_like($field, $match = '', $side = '両方')
249 {
250 return $this->_like($field, $match, 'OR ', $side, 'NOT');
251 }
252
253 /**
254 * シングルインサートを挿入
255 * @author zhaoyingnan 2015-10-14 14:52
256 * @param string $table テーブル名
257 * @param array $set 連想配列
258 * @return オブジェクト
259 **/
260 関数 insert($table = '', $set = NULL)
261 {}262
263 /**
264 * バッチエントリとバッチ終了を挿入します
265 * @author zhaoyingnan 2015-10-14 14:52
266 * @param string $table テーブル名
267 * @param array $set 連想配列
268 * @return オブジェクト
269 **/
270 public function insert_batch($table = '', $set = NULL)
271 {}
272
273 /**
274 *更新
275 * @著者zhaoyingnan 2015-10-14 15:02
276 * @param string $table テーブル名
277 * @param array $set 内容を変更するための連想配列
278 * @param 混合 $where where 条件
279 * @return オブジェクト
280 **/
281 public function update($table = '', $set = NULL, $where = NULL, $limit = NULL )
282 {}
283
284 /**
285 *削除
286 * @著者zhaoyingnan 2015-10-14 15:12
287 * @param mix $table テーブル名
288 * @param 混合 $where where 条件
289 * @return オブジェクト
290 **/
291 public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE)
292 {
293 // 最初のパラメータはテーブル名で、2 番目のパラメータは where 句です。 2 番目の引数を省略し、代わりに where() または or_where() 関数を使用できます。
294 //$this->db->where('id', $id);
295 //$this->db->delete('mytable');
296
297
298 //複数のテーブルからデータを削除する場合は、複数のテーブル名を含む配列を delete() 関数に渡すことができます。
299 //$tables = array('table1', 'table2', 'table3');
300 //$this->db->where('id', '5');
301 //$this->db->delete($tables);
302
303
304 //テーブル内のすべてのデータを削除したい場合は、truncate() 関数または empty_table() 関数を使用できます。
305 }
306
307 /**
308 *制限
309 * @著者zhaoyingnan 2015-10-14 14:34
310 * @param int $value
311 * @param int $offset
312 * @return オブジェクト
313 **/
314 パブリック 関数制限($value, $offset = '')
315 {}
316
317
318
319 /**
320 * どこ
321 *
322 * where() または or_where() によって呼び出されます
323 *
324 * @param混合
325 * @param混合
326 * @param string
327 * @return オブジェクト
328 **/
329 protected function _where($key, $value = NULL, $type = 'AND ', $escape = NULL)
330 {}
331
332 /**
333 * いいね!
334 *
335 * like() または orlike() によって呼び出されます
336 *
337 * @param混合
338 * @param混合
339 * @パラメータ文字列
340 * @return オブジェクト
341 **/
342 protected function _like($field, $match = '', $type = 'AND ', $side = '両方', $not = '' )
343 {
344 if ( ! is_array($field))
345 {
346 $field = array($field => $match);
347 }
348
349 foreach ($field as $k => $v)
350 {
351 $k = $this->_protect_identifiers($k);
352
353 $prefix = (count($this->ar_like) == 0) ? '' : $type;
354
355 $v = $this->escape_like_str($v);
356
357 if ($side == 'なし')
358 {
359 $like_statement = $prefix." $k $not LIKE '{$v}'";
360 }
361 elseif ($side == '前')
362 {
363 $like_statement = $prefix." $k $not LIKE '%{$v}'";
364 }
365 elseif ($side == 'after')
366 {
367 $like_statement = $prefix." $k $not LIKE '{$v}%'";
368 }
369 他
370 {
371 $like_statement = $prefix." $k $not LIKE '%{$v}%'";
372 }373
374 // 一部のプラットフォームでは、LIKE ワイルドカードのエスケープ シーケンス定義が必要です
375 if ($this->_like_escape_str != '')
376 {
377 $like_statement = $like_statement.sprintf($this->like_escape_str, $this->_like_escape_chr);
378 }
379
380 $this->ar_like[] = $like_statement;
381 if ($this->ar_caching === TRUE)
382 {
383 $this->ar_cache_like[] = $like_statement;
384 $this->ar_cache_exists[] = 'いいね';
385 }
386
387 }
388 戻る $this;
389 }
390
391 }
コードを表示
http://www.bkjia.com/PHPjc/1060219.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1060219.html技術記事 CI フレーム内の AR 操作,ciar モデル層内の部分代コード 1 /* * 2 * CI 内の AR 操作 3 * @author zhaoyingnan 4 * */ 5 public function mAR() 6 { 7 /* ****** ******** 查询 *****...