Home  >  Article  >  Backend Development  >  CI 框架中 AR 操作,ciar_PHP教程

CI 框架中 AR 操作,ciar_PHP教程

WBOY
WBOYOriginal
2016-07-12 09:07:35829browse

CI 框架中 AR 操作,ciar

Model 层中的部分代码

<span> 1</span>     <span>/*</span><span>*
</span><span> 2</span> <span>     * CI 中的 AR 操作
</span><span> 3</span> <span>     * @author    zhaoyingnan
</span><span> 4</span> <span>     *</span><span>*/</span>
<span> 5</span>     <span>public</span> <span>function</span><span> mAR()
</span><span> 6</span> <span>    {
</span><span> 7</span>         <span>/*</span><span>************** 查询 ************</span><span>*/</span>
<span> 8</span>         <span>//</span><span>select * from mp4ba limit 21,10;
</span><span> 9</span> <span>        //$objResult    =    $this->db->get('mp4ba', 10, 21);
</span><span>10</span> <span>        //echo $this->db->last_query();die;
</span><span>11</span> 
<span>12</span> 
<span>13</span> <span>        //select * from mp4ba where id =32 limit 21,10;
</span><span>14</span> <span>        //select * from mp4ba where id =32 and name = '刺客聂隐娘'limit 21,10;
</span><span>15</span> <span>        //$objResult    =    $this->db->get_where('mp4ba', array('id'=>32), 10, 21);
</span><span>16</span> <span>        //echo $this->db->last_query();die;
</span><span>17</span> <span>        //$objResult    =    $this->db->get_where('mp4ba', array('id'=>32,'name'=>'刺客聂隐娘'), 10, 21);
</span><span>18</span> <span>        //echo $this->db->last_query();die;
</span><span>19</span> 
<span>20</span> 
<span>21</span> <span>        //select id,name,url from mp4ba where id =32;
</span><span>22</span> <span>        //$objResult    =    $this->db->select('id,name,url')->get_where('mp4ba', array('id'=>32));
</span><span>23</span> <span>        //echo $this->db->last_query();die;
</span><span>24</span> 
<span>25</span> <span>        //select id,name,url from mp4ba where id =32 or id=39;
</span><span>26</span> <span>        //$objResult    =    $this->db->select('id,name,url')->where(array('id'=>32))->or_where(array('id'=>39))->get('mp4ba');
</span><span>27</span> <span>        //echo $this->db->last_query();die;
</span><span>28</span>         
<span>29</span> 
<span>30</span> <span>        //select id,name,url from mp4ba where id in(33,44,55);
</span><span>31</span> <span>        //select id,name,url from mp4ba where id in(33,44,55) or sort_id in (3,4);
</span><span>32</span> <span>        //select id,name,url from mp4ba where id not in(33,44,55);
</span><span>33</span> <span>        //$objResult    =    $this->db->select('id,name,url')->where_in('id', array(33,44,55))->get('mp4ba');
</span><span>34</span> <span>        //$objResult    =    $this->db->select('id,name,url')->where_in('id', array(33,44,55))->or_where_in('sort_id', array(3,4))->get('mp4ba');
</span><span>35</span> <span>        //$objResult    =    $this->db->select('id,name,url')->where_not_in('id', array(33,44,55))->get('mp4ba');
</span><span>36</span> <span>        //echo $this->db->last_query();die;
</span><span>37</span> 
<span>38</span> <span>        //select id,name,url from mp4ba join user on (mp4ba.uid=user.id) order by mp4ba.dateline desc;
</span><span>39</span> <span>        //$objResult    =    $this->db->select('id,name,url')->from('mp4ba')->join('user', 'mp4ba.uid = user.id')->order_by('mp4ba.dateline', 'desc')->get();
</span><span>40</span> <span>        //echo $this->last_query();die;
</span><span>41</span> 
<span>42</span> 
<span>43</span> <span>        //select * from mp4ba where name like '%刺客%';
</span><span>44</span> <span>        //select * from mp4ba where name not like '%刺客%';
</span><span>45</span> <span>        //select * from mp4ba where name like '%刺客%' or url like 'eqfdf%';
</span><span>46</span> <span>        //$objResult    =    $this->db->like('name', '刺客')->get('mp4ba');
</span><span>47</span> <span>        //$objResult    =    $this->db->not_like('name', '刺客')->get('mp4ba');
</span><span>48</span> <span>        //$objResult    =    $this->db->like('name', '刺客')->or_like('url', 'eqfdf', 'after')->get('mp4ba');
</span><span>49</span> <span>        //echo $this->db->last_query();die;
</span><span>50</span> 
<span>51</span> 
<span>52</span> 
<span>53</span> <span>        //select max(id) from mp4ba where name = '刺客聂隐娘';
</span><span>54</span> <span>        //select min(id) from mp4ba where name = '刺客聂隐娘';
</span><span>55</span> <span>        //$objResult    =    $this->db->select_max('id')->get_where('mp4ba', array('name'=>'刺客聂隐娘'));
</span><span>56</span> <span>        //echo $this->db->last_query();die;
</span><span>57</span> <span>        //$objResult    =    $this->db->select_min('id')->get_where('mp4ba', array('name'=>'刺客聂隐娘'));
</span><span>58</span> <span>        //echo $this->db->last_query();die;
</span><span>59</span> 
<span>60</span> <span>        //SELECT id,sort_id,menu,name FROM mp4ba WHERE id > 3 ORDER BY `dateline` desc LIMIT 10,100
</span><span>61</span> <span>        //$objResult    =    $this->db->select('id,sort_id,menu,name')->from('mp4ba')->where('id >', 3)->order_by('dateline desc')->limit(100,10)->get();
</span><span>62</span> <span>        //echo $this->db->last_query();
</span><span>63</span> <span>        //return $objResult->result();</span>
<span>64</span> 
<span>65</span> 
<span>66</span>         <span>/*</span><span>************** 插入 ************</span><span>*/</span>
<span>67</span>         <span>//</span><span>生成一条基于你所提供的数据的SQL插入字符串并执行查询。你可以向函数传递 数组 或一个 对象。下面是一个使用数组的例子:</span>
<span>68</span>         <span>$arInsert</span>    =    <span>array</span><span>(
</span><span>69</span>             'name'        =>    '小黄人',
<span>70</span>             'url'        =>    'www.test.com',
<span>71</span>             'sort_id'    =>    1,
<span>72</span>             'menu'        =>    '动画片'
<span>73</span> <span>        );
</span><span>74</span>         <span>//</span><span>$this->db->insert('mp4ba', $arInsert);
</span><span>75</span> <span>        //echo $this->db->insert_id();die;</span>
<span>76</span> 
<span>77</span> 
<span>78</span>         <span>/*</span><span>************** 修改 ************</span><span>*/</span>
<span>79</span>         <span>$arData</span>    =    <span>array</span><span>(
</span><span>80</span>             'name'        =>    '小黄人,好玩嘛',
<span>81</span>             'url'        =>    'www.test_xiaohuangren.com',
<span>82</span>             'sort_id'    =>    1,
<span>83</span>             'menu'        =>    '动画片'
<span>84</span> <span>        );
</span><span>85</span>         <span>//</span><span>$this->db->update('mp4ba', $arData, array('id'=>3498));
</span><span>86</span> <span>        //echo $this->db->affected_rows();    #受影响的行数
</span><span>87</span> <span>        //echo '<br/>';
</span><span>88</span> <span>        //$objResult    =    $this->db->where(array('id'=>3498))->get('mp4ba');
</span><span>89</span> <span>        //formatOut($objResult->result());die;</span>
<span>90</span>         
<span>91</span>         <span>/*</span><span>************** 删除 ************</span><span>*/</span>
<span>92</span>         <span>$this</span>->db->delete('mp4ba', <span>array</span>('id'=>3498<span>));
</span><span>93</span>         <span>echo</span> <span>$this</span>->db->affected_rows();    <span>#</span><span>受影响的行数</span>
<span>94</span>     }

 

CI 中 DB_active_rec.php 该类中的部分方法的标注(会持续补充)

CI 框架中 AR 操作,ciar_PHP教程 1 php 2 class CI_DB_active_record 3 { 4 /** 5 * get 6 * @author zhaoyingnan 2015-10-14 12:50 7 * @param string $table 操作的表 8 * @param int $limit limit 值 9 * @param int $offset offset 值 10 * @return object 11 **/ 12 public function get($table = '', $limit = null, $offset = null) 13 {} 14 15 /** 16 * get_where 17 * @author zhaoyingnan 2015-10-14 12:58 18 * @param string $table 操作的表 19 * @param array $where where 子句 20 * @param int $limit limit 值 21 * @param int $offset offset 值 22 * @return object 23 **/ 24 public function get_where($table = '', $where = null, $limit = null, $offset = null) 25 {} 26 27 /** 28 * select 29 * @author zhaoyingnan 2015-10-14 13:13 30 * @param string $select 查询的字段,用逗号隔开 31 * @param boolean $escape 如果你把它设为FALSE, CodeIgniter 将不会使用反引号保护你的字段或者表名 。这在进行复合查询时很有用。 32 * @return object 33 **/ 34 public function select($select = '*', $escape = NULL) 35 {} 36 37 /** 38 * SELECT MAX(field) portion of a query* @description 39 * @author zhaoyingnan 2015-10-14 13:20 40 * @param string $select max(field)作用列 41 * @param string $alias 别名 42 * @return object 43 **/ 44 public function select_max($select = '', $alias = '') 45 {} 46 47 /** 48 * SELECT MIN(field) portion of a query 49 * @author zhaoyingnan 2015-10-14 13:20 50 * @param string $select min(field)作用列 51 * @param string $alias 别名 52 * @return object 53 **/ 54 public function select_min($select = '', $alias = '') 55 {} 56 57 /** 58 * SELECT AVG(field) portion of a query 59 * @author zhaoyingnan 2015-10-14 13:20 60 * @param string $select AVG(field)作用列 61 * @param string $alias 别名 62 * @return object 63 **/ 64 public function select_avg($select = '', $alias = '') 65 {} 66 67 /** 68 * SELECT SUM(field) portion of a query 69 * @author zhaoyingnan 2015-10-14 13:20 70 * @param string $select SUM(field)作用列 71 * @param string $alias 别名 72 * @return object 73 **/ 74 public function select_sum($select = '', $alias = '') 75 {} 76 77 78 /** 79 * @description 80 * @author zhaoyingnan 2015-10-14 13:26 81 * @param string $from 表名 82 * @return object 83 **/ 84 public function from($from) 85 {} 86 87 /** 88 * where 89 * @author zhaoyingnan 2015-10-14 13:31 90 * @param mix $key 传递数组的 key 值 91 * @param mix $value 传递数组的 key 对应的 value 值 92 * @return object 93 **/ 94 public function where($key, $value = NULL, $escape = TRUE) 95 { 96 //1,简单的 key/value 方法: 97 //$this->db->where('name', $name); 98 //生成: WHERE name = 'Joe' 99 100 //2.自定义 key/value 方法: 101 //$this->db->where('name !=', $name); 102 //$this->db->where('id 103 //生成: WHERE name != 'Joe' AND id 104 105 //3.关联数组方法: 106 //$array = array('name' => $name, 'title' => $title, 'status' => $status); 107 //$this->db->where($array); 108 //生成: WHERE name = 'Joe' AND title = 'boss' AND status = 'active' 109 //使用这个方法时你也可以包含运算符: 110 //$array = array('name !=' => $name, 'id $id, 'date >' => $date); 111 112 //4.自定义字符串: 113 //$where = "name='Joe' AND status='boss' OR status='active'"; 114 //$this->db->where($where); 115 return $this->_where($key, $value, 'AND ', $escape); 116 } 117 118 /** 119 * where 120 * @author zhaoyingnan 2015-10-14 13:31 121 * @param mix $key 传递数组的 key 值 122 * @param mix $value 传递数组的 key 对应的 value 值 123 * @return object 124 **/ 125 public function or_where($key, $value = NULL, $escape = TRUE) 126 { 127 //参考where 128 return $this->_where($key, $value, 'OR ', $escape); 129 } 130 131 132 /** 133 * where_in 134 * @author zhaoyingnan 2015-10-14 13:58 135 * @param string $key 要查询的列 136 * @param string $values 列的值得范围 137 * @return object 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 * @author zhaoyingnan 2015-10-14 13:58 147 * @param string $key 要查询的列 148 * @param string $values 列的值得范围 149 * @return object 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 * where_not_in 158 * @author zhaoyingnan 2015-10-14 13:58 159 * @param string $key 要查询的列 160 * @param string $values 列的值得范围 161 * @return object 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 * @author zhaoyingnan 2015-10-14 13:58 171 * @param string $key 要查询的列 172 * @param string $values 列的值得范围 173 * @return object 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 * order by 182 * @author zhaoyingnan 2015-10-14 13:35 183 * @param string $orderby 被排序的列 184 * @param string $direction asc 或者 desc 185 * @return object 186 **/ 187 public function order_by($orderby, $direction = '') 188 {} 189 190 /** 191 * join 192 * @author zhaoyingnan 2015-10-14 14:07 193 * @param string $table 表名 194 * @param string $cond 条件 195 * @param string $type 指定 JOIN 的类型可选项包括:left, right, outer, inner, left outer, 以及 right outer 196 * @return 197 **/ 198 public function join($table, $cond, $type = '') 199 {} 200 201 /** 202 * like 203 * @author zhaoyingnan 2015-10-14 14:28 204 * @param stringi $field 错作的列 205 * @param mix $match 规则 206 * @param mix $side 通配符(%)位置可用的选项是 'before', 'after' 以及 'both' (这是默认值) 207 * @return object 208 **/ 209 public function like($field, $match = '', $side = 'both') 210 { 211 return $this->_like($field, $match, 'AND ', $side); 212 } 213 214 /** 215 * not_like 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 object 221 **/ 222 public function not_like($field, $match = '', $side = 'both') 223 { 224 return $this->_like($field, $match, 'AND ', $side, 'NOT'); 225 } 226 227 /** 228 * or_like 229 * @author zhaoyingnan 2015-10-14 14:28 230 * @param stringi $field 错作的列 231 * @param mix $match 规则 232 * @param mix $side 通配符(%)位置可用的选项是 'before', 'after' 以及 'both' (这是默认值) 233 * @return object 234 **/ 235 public function or_like($field, $match = '', $side = 'both') 236 { 237 return $this->_like($field, $match, 'OR ', $side); 238 } 239 240 /** 241 * or_not_like 242 * @author zhaoyingnan 2015-10-14 14:28 243 * @param stringi $field 错作的列 244 * @param mix $match 规则 245 * @param mix $side 通配符(%)位置可用的选项是 'before', 'after' 以及 'both' (这是默认值) 246 * @return object 247 **/ 248 public function or_not_like($field, $match = '', $side = 'both') 249 { 250 return $this->_like($field, $match, 'OR ', $side, 'NOT'); 251 } 252 253 /** 254 * insert 单条插入 255 * @author zhaoyingnan 2015-10-14 14:52 256 * @param string $table 表名 257 * @param array $set 关联数组 258 * @return object 259 **/ 260 function insert($table = '', $set = NULL) 261 {} 262 263 /** 264 * insert 批量出入 265 * @author zhaoyingnan 2015-10-14 14:52 266 * @param string $table 表名 267 * @param array $set 关联数组 268 * @return object 269 **/ 270 public function insert_batch($table = '', $set = NULL) 271 {} 272 273 /** 274 * update 275 * @author zhaoyingnan 2015-10-14 15:02 276 * @param string $table 表名 277 * @param array $set 修改内容的关联数组 278 * @param mixed $where where条件 279 * @return object 280 **/ 281 public function update($table = '', $set = NULL, $where = NULL, $limit = NULL) 282 {} 283 284 /** 285 * delete 286 * @author zhaoyingnan 2015-10-14 15:12 287 * @param mix $table 表名 288 * @param mixed $where where条件 289 * @return object 290 **/ 291 public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) 292 { 293 //第一个参数是表名,第二个参数是where子句。你可以不传递第二个参数,使用 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 * limit 309 * @author zhaoyingnan 2015-10-14 14:34 310 * @param int $value 311 * @param int $offset 312 * @return object 313 **/ 314 public function limit($value, $offset = '') 315 {} 316 317 318 319 /** 320 * Where 321 * 322 * Called by where() or or_where() 323 * 324 * @param mixed 325 * @param mixed 326 * @param string 327 * @return object 328 **/ 329 protected function _where($key, $value = NULL, $type = 'AND ', $escape = NULL) 330 {} 331 332 /** 333 * Like 334 * 335 * Called by like() or orlike() 336 * 337 * @param mixed 338 * @param mixed 339 * @param string 340 * @return object 341 **/ 342 protected function _like($field, $match = '', $type = 'AND ', $side = 'both', $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 == 'none') 358 { 359 $like_statement = $prefix." $k $not LIKE '{$v}'"; 360 } 361 elseif ($side == 'before') 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 else 370 { 371 $like_statement = $prefix." $k $not LIKE '%{$v}%'"; 372 } 373 374 // some platforms require an escape sequence definition for LIKE wildcards 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[] = 'like'; 385 } 386 387 } 388 return $this; 389 } 390 391 } View Code

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1060219.htmlTechArticleCI 框架中 AR 操作,ciar Model 层中的部分代码 1 /* * 2 * CI 中的 AR 操作 3 * @author zhaoyingnan 4 * */ 5 public function mAR() 6 { 7 /* ************** 查询 *****...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn