$sql = 'SELECT * FROM to8to_worker_item limit 10';
$res = Yii::app()->db->createCommand($sql)->queryAll();
這是yii1中寫sql語句來查詢數據庫的寫法,queryRow()方法只查一條,查詢結果是數組,無需toArray()也不能夠調用這個方法;
$cri = new CDbCriteria();
$cri->addCondition('id = 1','AND');//where id = 1 第二個參數默認省略,若是是OR關係時就起做用了
$cri->addInCondition('id',array(1,2,3));//where id in (1 ,2, 3)
$cri->addNotInCondition('id',array(1,2,3));//where id not in (1 ,2 ,3)
$cri->addSearchCondition('name','zhang');//模糊搜索 where name like '%zhang%'
$cri->addBetweenCondition('id',1,5);//where id between 1 and 5mysql
$cri->compare('id',1);//where id = 1
$cri->compare('id',array(1,2));//where id in (1,2)sql
$cri->addCondition('id = :id');//佔位符的使用方法
$cri->params[':id']=1;數據庫
$cri->select= 'id,name,age';//查詢字段 select id name age,不重寫默認是 select *
$cri->jion = 'left jion books on books.id = students.id ';//鏈表查詢
$cri->distinct = FALSE; //是否惟一查詢,默認false數組
student::model()->findAll($cri);app
這是yii1中用CDbCriteria對象來收集查詢條件的寫法,查詢結果是對象yii
$rows = (new \yii\db\Query())
->select(['id','name'])
->from('students')
->where(['age'=>10])
->limit(10)
->all();ui
$rows = Yii::app()->db->createCommand()
->select(['id','name'])
->from('students')
->where(['age'=>10])
->limit(10)
->all();對象
query builder和Command現都支持鏈式調用排序
mysql要先排序在限制條數,一邊狀況下limit是最後加上去事務
new CDbCriteria()->compare($column,$value,$partialMatch=false,$operator='AND');
//search時$column匹配$value,false爲徹底匹配,true爲模糊匹配,$operator爲操做符
事務的操做$shiwu = Yii::app()->db->beginTransaction();try { $update['coupons_enddate'] = 0; $update['coupons_money'] = 0; $res = Yii::app()->db->createCommand()->update('{{owner}}', $update, "coupons_money>0 and coupons_enddate <$timestamp"); $a = Yii::app()->db->createCommand($sql)->execute(); if($a && $res) { $shiwu->commit(); echo "<script>alert('成功清除現金券過時用戶數據{$num}條')</script>"; Yii::app()->end(); }else { throw new Exception('修改不成功'); }} catch (Exception $exc) { echo "<script>alert('沒找到須要清除的數據或清除失敗')</script>"; $shiwu->rollback(); Yii::app()->end();}