Yii2 数据库常用操作
2017-7-4 简爱
Yii2 数据库操作
==================
## 新增
### 使用 `model::save()` 操作进行新增数据
```php
$user = new User;
$user->username = $username;
$user->password = $password;
$user->save()
```
### 使用 `createCommand()` 进行新增数据
```php
Yii::$app->db->createCommand()->insert('user', [
'name' => 'test',
'age' => 30,
])->execute();
```
### 批量插入数据
```php
Yii::$app->db->createCommand()->batchInsert('user', ['name', 'age'], [
['test01', 30],
['test02', 20],
['test03', 25],
])->execute();
```
## 修改
### 使用 `model::save()` 进行修改
```php
$user = User::find()->where(['name' => 'test'])->one(); // 获取 name 等于 test 的模型
$user->age = 40; // 修改 age 属性值
$user->save(); // 保存
```
### 直接修改:修改用户 `test` 的年龄为 `40`
```php
$result = User::model()->updateAll(['age' => 40],['name' => 'test']);
```
### 使用 `createCommand()` 修改
```php
Yii::$app->db->createCommand()->update('user', ['age' => 40], 'name => test')->execute();
```
## 删除
### 使用 `model::delete()` 进行删除
```php
$user = User::find()->where(['name' = >'test'])->one();
$user->delete();
```
### 直接删除:删除年龄为30的所有用户
```php
$result = User::deleteAll(['age' = >'30']);
```
使用 `createCommand()` 删除
```php
Yii::$app->db->createCommand()->delete('user', 'age = 30')->execute();
```
## 杂项
```php
User::find()->all(); // 返回所有用户数据
User::findOne($id); // 返回 主键 id=1 的一条数据
User::find()->one(); // 返回一条数据
User::find()->all(); // 返回所有数据
User::find()->count(); // 返回记录的数量
User::find()->average(); // 返回指定列的平均值
User::find()->min(); // 返回指定列的最小值
User::find()->max(); // 返回指定列的最大值
User::find()->scalar(); // 返回值的第一行第一列的查询结果
User::find()->column(); // 返回查询结果中的第一列的值
User::find()->exists(); // 返回一个值指示是否包含查询结果的数据行
User::find()->where(['name' => 'ttt'])->one(); // 返回 ['name' => 'ttt'] 的一条数据
User::find()->where(['name' => 'ttt'])->all(); // 返回 ['name' => 'ttt'] 的所有数据
User::findBySql('SELECT * FROM user')->all(); // 用 sql 语句查询 user 表里面的所有数据
User::findBySql('SELECT * FROM user')->one(); // 此方法是用 sql 语句查询 user 表里面的一条数据
User::find()->andWhere(['sex' => '女', 'age' => '18'])->count('id'); // 统计符合条件的总条数
```
评论: