yii2.0學習有一段時間了,給大家分享一下一些簡單的查詢等如何操作。
查詢:(這里最前面的Test是引用的模型名)
Test::find()->all(); 此方法返回所有數據;
Test::findAll(['status'=>1]);
這些查詢出來是對象形式,但是一般轉換成數組格式:
Test::find()->asArray()->all(); 加上asArray()就取得數組形式的數據了,下面的自行添加。
Test::findOne($id); 此方法返回 主鍵 id=1 的一條數據(舉個例子);
條件查詢:where 、andwhere 、 orwhere
Test::find()->where(['name' => 小明'])->one(); 此方法返回 ['name' => '小明'] 的一條數據;
Test::find()->where(['name' => '小明'])->all(); 此方法返回 ['name' => '小明'] 的所有數據;
Test::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); 統計符合條件的總條數;
Test::find()->where(['and','id=1','id=2'])->all(); //id=1 and id=2
Test::find()->where(['or','id=1','id=2'])->all(); //id=1 or id=2
sql語句查詢:
Test::findBySql('SELECT * FROM user')->all(); 此方法是用 sql 語句查詢 user 表里面的所有數據;
Test::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 語句查詢 user 表里面的一條數據;
//查詢一條數據
$sql =
"SELECT id,name FROM tbl_user WHERE email='123@qq.com' "
;
$users=Yii::app()->db->createCommand($sql)->queryRow();
其他輔助查詢:
Test::find()->one(); 此方法返回一條數據;
Test::find()->all(); 此方法返回所有數據;
Test::find()->count(); 此方法返回記錄的數量;
Test::find()->average(); 此方法返回指定列的平均值;
Test::find()->min(); 此方法返回指定列的最小值 ;
Test::find()->max(); 此方法返回指定列的最大值 ;
Test::find()->scalar(); 此方法返回值的第一行第一列的查詢結果;
Test::find()->column(); 此方法返回查詢結果中的第一列的值;
Test::find()->exists(); 此方法返回一個值指示是否包含查詢結果的數據行;
Test::find()->batch(10); 每次取 10 條數據
Test::find()->each(10); 每次取 10 條數據, 迭代查詢
支持防sql注入:
②
$users = Yii::app()->db->createCommand()
->
select
(
'*'
)
->
from
(
'tbl_user'
)
->queryAll();
$connection ->createCommand() ->delete('tbl_user', 'status = 0') ->execute();
④(使用sql刪除)
$connection ->createCommand('DELETE FROM tbl_user WHERE userid=:userid') ->execute();
⑤(查找並刪除)
$user = User::findOne(2); $user->delete(); // 輸出語句 // DELETE FROM `tbl_user` WHERE `id`='2'
刪除多個:deleteAll()
①
Test::deleteAll('status = :status AND age > :age', [':age' => 20, ':status' => 'active']); //DELETE FROM `tbl_user`where age>20 and status='active'
②
Test::deleteAll([ 'and', 'type = :type_id',['not in', 'usercategoryid', $categoriesList]],[ ':type_id' => 2]); //DELETE FROM `tbl_user` WHERE (type = 2) AND (`usercategoryid` NOT IN (1, 2, 3))
③
Yii::app()->db->createCommand()->delete(
'tbl_user'
,
'id=:id'
,
array(
':id'
=> 2));
修改:(先查詢后修改)
②
//修改
yii::$app->db->createCommand()->update('yii_company_info',
["company_name"=>$company_name,"company_desc"=>$company_desc],
"company_id=$company_id")->execute();
插入:
//使用user model添加數據
$user =
new
Users(); //先實例化model
$user->setAttributes(array(
'username'
=>
'user1'
,
'email'
=>
'123@qq.com'
,
'password'
=>md5(
"abcsd5a4"
),
'last_login'
=>time()
));
$user->save();
Yii::$app->db->createCommand()->insert(
'tbl_user'
,
array(
'username'
=>
'zhangsan'
,
'email'
=>
'zhangsan@zs.com'
))->execute();
注:本文由王智磊(王大寶兒)整理編寫,也參考借鑒了很多大神的筆記,分享代碼,分享成功,歡迎各位交流和轉載,轉載請注明出處(博客園:王大寶兒)http://www.cnblogs.com/wangzhilei/