Yii框架下數據操作-model、對象


 1 ==================查詢==================
 2 
 3 條件-綁定參數-返回多個對象
 4 $admin = Admin::model()->findAll($condition, $params);
 5 $admin = Admin::model()->findAll("username = :name", [":name" => $username]);
 6 $admin = Admin::model()->findAll("status = 1 ORDER BY id DESC limit 10");
 7 
 8 條件-綁定參數-返回一個對象
 9 $admin = Admin::model()->find($condition, $params);
10 $admin = Admin::model()->find('username = :name', ':name'=>'admin');  
11 
12 
13 主鍵-條件-綁定參數-返回多個對象
14 $admin = Admin::model()->findAllByPk($postIDs, $condition, params);
15 $admin = Admin::model()->findAllByPk($id,"name like :name and age=:age",array(':name'=>$name,'age'=>$age));
16 $admin = Admin::model()->findAllByPk(array(1,2));
17 
18 主鍵-條件-綁定參數-返回一個對象
19 $admin = Admin::model()->findByPk($postID, $condition, $params);
20 $admin = Admin::model()->findByPk(1);
21 
22 條件數組-條件-綁定參數-返回多個對象
23 $admin = Admin::model()->findAllByAttributes($attributes, $condition, $params);
24 $admin = Admin::model()->findAllByAttributes(array('username' => 'admin'));
25 
26 條件數組-條件-綁定參數-返回一個對象
27 $admin = Admin::model()->findByAttributes($attributes, $condition, $params);
28 $admin = Admin::model()->findByAttributes(array('username' => 'admin'));
29 
30 sql語句-綁定參數-返回多個對象
31 $admin = Admin::model()->findAllBySql($sql, $params);
32 $admin = Admin::model()->findAllBySql("select id from admin where username = :name", [':name'=>'%ad%']);
33 
34 sql語句-綁定參數-返回一個對象
35 $admin = Admin::model()->findBySql($sql, $params);
36 $admin = Admin::model()->findBySql("select * from admin where username=:name",array(':name'=>'admin'));
37 
38 $criteria = new CDbCriteria;
39 $criteria->select = 'id';//查詢的字段
40 $criteria->condition = 'nmae = :name';//有且只有一個條件
41 $criteria->params = [':name' => 'admin'];//綁定參數
42 $criteria->join = 'xxx';//連接表
43 $criteria->with = 'xxx';//調用relations
44 $criteria->order = 'id desc';//指定字段排序
45 $criteria->offset = 1;//起始量,通常和limit配合使用
46 $criteria->limit = 3;//指定查詢數據量
47 $criteria->group = 'xxx';//分組
48 $criteria->having = 'xxx';
49 $criteria->distinct = false;//是否唯一查詢
50 $criteria->addCondition('id = 1');//id = 1
51 $criteria->addCondition('id = 1', 'or');//or id = 1
52 $criteria->addInCondition('id', [1, 2, 3]);//id in (1,2,3)
53 $criteria->addNotInCondition('id', [1, 2, 3])//id not in (1,2,3)
54 $criteria->addSearchCondition('name', '你好');//name like '%你好%'
55 $criteria->addBetweenCondition('id', 1, 10);//id between 1 and 10
56 $criteria->compare('id', 1);//如果第二個參數是數字,則按照addCondition處理
57 $criteria->compare('id', [1, 2, 3]);//如果第二個參數是數組,則按照addInCondition處理
58 $admin = Admin::model()->find($criteria);
59 
60 條件-綁定參數-返回數據記錄數
61 $count = Admin::model()->count($condition, $params);
62 $count = Admin::model()->count('name = "你好"');
63 $count = Admin::model()->count('name = :name', [':name' => '你好']);
64 
65 sql語句-綁定參數-返回數據記錄數
66 $count = Admin::model()->countBySql($sql, $params);
67 $count = Admin::model()->countBySql('select count(*) from admin where name = "你好"');
68 $count = Admin::model()->countBySql('select count(*) from admin where name = :name', [':name' => '你好']);
69 
70 條件-綁定參數-返回true或false
71 $exists = Admin::model()->exists($condition, $params);
72 $exists = Admin::model()->exists('name = "你好"');
73 $exists = Admin::model()->exists('name = :name', [':name' => '你好']);
74 
75 ==================新增==================
76 $admin = new Admin;
77 $admin->username = $username;
78 $admin->time = time();
79 $save = $admin->save();//需要指定全部字段,否則會返回false
80 
81 ==================修改==================
82 Admin::model()->updateAll($attributes, $condition, $params);//$attributes是要修改的字段的集合,$condition條件,$params傳入的值
83 $update = Admin::model()->updateAll(['name' => '你好嗎'], 'id = :id', [':id' => 1]);//將id = 1的name的值修改成‘你好嗎’
84 
85 Admin::model()->updateByPk($pk, $attributes, $condition, $params);//$pk主鍵,可以是一個也可以是一個集合,$attributes是要修改的字段的集合,$condition條件,$params傳入的值
86 $update = Admin::model()->updateByPk(1, ['name' => '你好嗎']);
87 $update = Admin::model()->updateByPk([1, 2], ['name' => '你好嗎']);
88 
89 Admin::model()->updateCounters($counters, $condition, $params);
90 $update = Admin::model()->updateCounters(['tel' => 1], 'id = :id', [':id' => 1]);//將id = 1的tel字段自加1,類似set tel = tel + 1,如果是負數則自減1,set tel = tel - 1;
91 
92 ==================刪除==================
93 Admin::model()->deleteAll($condition, $params);
94 $delete = Admin::model()->deleteAll('id = :id', [':id' => 1]);//刪除id = 1的數據
95 $delete = Admin::model()->deleteAll('id = 1');//刪除id = 1的數據
96 
97 Admin::model()->deleteByPk($pk, $condition, $params);
98 $delete = Admin::model()->deleteByPk(1, 'name = :name', [':name' => '你好']);//刪除主鍵id = 1 and name = '你好'的數據,如果id = 1但是name != '你好'會刪除失敗,所以這個方法一般只需要傳主鍵的值就好了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM