Yii2 中經常使用的增刪改查操做總結

 

1、新增

一、使用save()sql

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

二、使用createCommand 原生sql數組

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

三、使用createCommand insertapp

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

四、批量插入yii

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

 

2、刪除

一、使用delete()spa

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

二、使用deleteAll()批量刪除code

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

三、使用createCommand delete()blog

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

四、使用createCommand 原生sqlclass

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

 

3、更新

一、使用update()test

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

二、使用updateAll()email

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

三、使用createCommand update()

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

四、使用createCommand 原生sql

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

 

4、查詢

一、使用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();

二、使用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();

三、使用yii\db\Query()

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

四、子查詢

$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();
相關文章
相關標籤/搜索