一、新增
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
三、更新
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();