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

 

一、新增

1、使用save()

$model = new User();
$model->name = 'test';
$model->phone = '13000000000'$model->email = '123456@qq.com'$model->save();

2、使用createCommand 原生sql

$sql = "insert into user (name,phone,email) values ('test','13000000000','123456@qq.com')";
Yii::$app->db->createCommand($sql)->execute();

3、使用createCommand insert

Yii::$app->db->createCommand()->insert('user', [
    'name' => 'test','phone' => '13000000000','email' => '123456@qq.com'
])->execute();

4、批量插入

Yii::$app->db->createCommand()->batchInsert('user',['name','phone','email'],1)"> [
    ['test1','123456@qq.com'],1)">
    ['test2','13000000001','234567@qq.com']
])->execute();

 5、使用save()并校验参数正确性

        $data = [
            'name' => 'test',1)">
        ];
         User();
        // 将数据填充到模型的属性中
        $model->load($data,'');
         等效于下面这样:
        // $model->attributes = $data;
        // 或者
        // $model->setAttributes($data);
        if ($model->validate()) {
             通过验证
            save();
        } else {
             验证失败: $errors 是一个包含错误信息的数组
            $errors = errors;
        }

 

二、删除

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'"$sql)->execute();

 

三、更新

1、使用update()

$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'],1)">$sql = "update user set phone = '13100000000' where name = 'test'"$sql)->execute();

 

四、查询

1、使用model

 查询一条记录
User::find()->select(['name','email'])->where(['phone' => '13000000000'])->andWhere(['like','name','test'])->one();
 查询一条记录数组返回
User::find()->where(['name' => 'test'])->asArray()-> 查询所有记录
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::
(new \yii\db\Query())->from('user')->where(['name' => 'test'])->all();

4、子查询

$subQuery = (new \yii\db\Query())->select(['id'])->from('user')->where(['like',1)">all();
(new \yii\db\Query())->from('user')->where(['in','id',$subQuery])->all();

 

相关文章

1、将Yii2.0advanced版中应用主体frontend或backend应用复制...
Yii2restfulAPI文档一、配置模块:1.Config/main.php:  2...
Yii在framework/i18n/data/%lang%.php文件中有很多翻译.这...
在Yii2中,官方的页面多语言解决方案有两个:方案1,使用Yii...
Yii2.0对数据库查询的一些简单的操作1234567891011121314151...
数据查询User::find()->all();此方法返回所有数据;User:...