一、新增

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

最新文章

  1. mysql免安装使用(win7 64位系统)
  2. Repeater嵌套Repeater并取得嵌套Repeater里面的控件
  3. fatal error: call to undefined function imagettftext
  4. [转]使用Xcode 4发布App 实例操作
  5. 菜鸟教程 Python100例 之实例29
  6. JS 键值对
  7. (8)UI(控件)
  8. struts2文件下载 出现Can not find a java.io.InputStream with the name的错误
  9. Get ListView items from other windows z
  10. 使用Heartbeat实现双机热备
  11. PAT-L2-007-gplt真题
  12. BZOJ_4269_再见Xor_线性基
  13. C/C++内存泄漏检测 —— memleax
  14. innodb_fast_shutdown的内幕
  15. 需求改进&系统设计
  16. 创建分区swap分区
  17. Tomcat : Invalid character found in the request target
  18. java中的容器解释
  19. 记一次redis攻击
  20. 《C++ Primer Plus》学习笔记 2.1.3 C++预处理器和iostream文件

热门文章

  1. Robotframework常见问题收集
  2. 205K+程序员关注过的问题:为什么不应该使用Java的原始类型?
  3. Ubuntu16.04+GTX2070+Driver418.43+CUDA10.1+cuDNN7.6
  4. 云服务器配置 docker java mysql mongodb redis nginx 环境
  5. docker网络配置
  6. 面试连环炮系列(七):HashMap的put操作做了什么
  7. 0基础-scp命令一学就会
  8. 工具类Arrays.asList()方法把数组转换成集合
  9. SpringBoot系列-整合Mybatis(注解方式)
  10. tornado框架中redis使用