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

一、新增

1、使用save()

$model = newUser();$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 = newUser();//将数据填充到模型的属性中

$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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值