加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Yii2 中常用的增删改查操作总结

发布时间:2020-12-13 17:31:14 所属栏目:PHP教程 来源:网络整理
导读:? 一、新增 1、使用save() $model = new User(); $model -name = ‘test‘ ; $model -phone = ‘13000000000‘ ; $model -email = ‘[email?protected]‘ ; $model -save(); 2、使用createCommand 原生sql $sql = "insert into user (name,phone,email) valu

?

一、新增

1、使用save()

$model = new User();
$model->name = ‘test‘;
$model->phone = ‘13000000000‘;
$model->email = ‘[email?protected]‘;
$model->save();

2、使用createCommand 原生sql

$sql = "insert into user (name,phone,email) values (‘test‘,‘13000000000‘,‘[email?protected]‘)";
Yii::$app->db->createCommand($sql)->execute();

3、使用createCommand insert

Yii::$app->db->createCommand()->insert(‘user‘, [
    ‘name‘ => ‘test‘,‘phone‘ => ‘13000000000‘,‘email‘ => ‘[email?protected]‘
])->execute();

4、批量插入

Yii::$app->db->createCommand()->batchInsert(‘user‘,[‘name‘,‘phone‘,‘email‘], [
    [‘test1‘,‘[email?protected]‘],
    [‘test2‘,‘13000000001‘,‘[email?protected]‘]
])->execute();

?

二、删除

1、使用delete()

$user = User::find()->where([‘name‘ => ‘test‘])->one();
$user->delete();

2、使用deleteAll()批量删除

User::deleteAll([‘name‘ => ‘test‘]);

3、使用createCommand delete()

Yii::$app->db->createCommand()->delete(‘user‘,[‘name‘ => ‘test‘])->execute();

4、使用createCommand 原生sql

$sql = "delete from user where name = ‘test‘";
Yii::$app->db->createCommand($sql)->execute();

?

三、更新

1、使用update()

$user = User::find()->where([‘name‘ => ‘test‘])->one();
$user->phone = ‘13100000000‘;
$user->update();  // 或者 $user->save();

2、使用updateAll()

User::updateAll([‘phone‘ => ‘13100000000‘],[‘name‘ => ‘test‘]);

3、使用createCommand update()

Yii::$app->db->createCommand()->update(‘user‘,[‘phone‘ => ‘13100000000‘],[‘name‘ => ‘test‘])->execute();

4、使用createCommand 原生sql

$sql = "update user set phone = ‘13100000000‘ where name = ‘test‘";
Yii::$app->db->createCommand($sql)->execute();

?

四、查询

1、使用model

// 查询一条记录
User::find()->select([‘name‘,‘email‘])->where([‘phone‘ => ‘13000000000‘])->andWhere([‘like‘,‘name‘,‘test‘])->one();
// 查询一条记录数组返回
User::find()->where([‘name‘ => ‘test‘])->asArray()->one();
// 查询所有记录
User::find()->where([‘name‘ => ‘test‘])->all();
// 查询所有记录数组返回
User::find()->where([‘name‘ => ‘test‘])->asArray()->all();

2、使用createCommand

// 查询一条记录
Yii::$app->db->createCommand("select * from user where name = :name and phone = :phone")->bindValues([‘:name‘ => ‘test‘,‘:phone‘ => ‘13000000000‘])->queryOne();
// 查询所有记录
Yii::$app->db->createCommand("select * from user where name = :name and phone = :phone")->bindValues([‘:name‘ => ‘test‘,‘:phone‘ => ‘13000000000‘])->queryAll();

3、使用yiidbQuery()

(new yiidbQuery())->from(‘user‘)->where([‘name‘ => ‘test‘])->all();

4、子查询

$subQuery = (new yiidbQuery())->select([‘id‘])->from(‘user‘)->where([‘like‘,‘test‘])->all();
(new yiidbQuery())->from(‘user‘)->where([‘in‘,‘id‘,$subQuery])->all();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读