纵有疾风起
人生不言弃

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'], [    ['test1', '13000000000', '123456@qq.com'],    ['test2', '13000000001', '234567@qq.com']])->execute();

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

        $data = [            'name' => 'test',            'phone' => '13000000000',            'email' => '123456@qq.com'        ];        $model = new User();        // 将数据填充到模型的属性中        $model->load($data, '');        // 等效于下面这样:        // $model->attributes = $data;        // 或者        // $model->setAttributes($data);        if ($model->validate()) {            // 通过验证            $model->save();        } else {            // 验证失败: $errors 是一个包含错误信息的数组            $errors = $model->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'";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', 'phone', '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、使用yii\db\Query()

(new \yii\db\Query())->from('user')->where(['name' => 'test'])->all();

4、子查询

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

 

文章转载于:https://www.cnblogs.com/woods1815/p/11145063.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » Yii2 中常用的增删改查操作总结
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录