[TOC]
# Command對象
與[Query查詢](http://www.kkh86.com/it/yii2/guide-db-query.html)不同,要增刪改的話不能只靠Query對象,Query對象始終都只是一個**查詢器**的角色
進行增刪改都需要一個[yii\\db\\Command](http://www.yiichina.com/doc/api/2.0/yii-db-command)對象
獲得Command對象的方式主要有2個:
1. `Yii::$app->db->createCommand()`,不用傳參數就可以了
2. `new (\yii\db\Query())->createCommand()`
然后再調用Command的insert、update、delete方法
# INSERT(插入)
~~~php
$data = [
'name' => '小明',
'age' => 9,
'email' => 'qqq@xx.com',
];
$rows = Yii::$app->db->createCommand()->insert($tableName, $data)->execute();
echo $command->rawSql;
print_r([
$rows,
$command->rawSql,
$command->pdoStatement->fetch(PDO::FETCH_ASSOC)
]);
(new \yii\db\Query())->createCommand()->insert($tableName, $data)->execute(); //一樣的效果
~~~
還可以批量插入:
~~~php
$fields = ['name', 'age', 'email']; //定義要插入的字段
$userList = [
['小明', 11, '123@xx.com'], //第一條記錄的數據
['小紅', 12, '223@xx.com'], //第二條,你懂的
['小東', 13, '323@xx.com'],
['小龍', 14, '423@xx.com'],
];
Yii::$app->db->createCommand()->batchInsert($tableName, $fields, $userList)->execute(); //返回插入的行數
~~~
# UPDATE(更新)
~~~php
$data = [
'name' => '小明2',
'status' => 1
];
$condition = ['>', 'age', 30];
Yii::$app->db->createCommand()->update('user', $data, $condition)->execute();
~~~
`$condition`部分和Query的where參數寫法一樣
# DELETE(刪除)
~~~php
$condition = ['>', 'age', 30];
Yii::$app->db->createCommand()->delete('user', $condition)->execute();
~~~
`$condition`部分和Query的where參數寫法一樣too
- 目錄
- 配置
- 簡介
- 別名
- gii
- 配置項
- 模型
- 簡介
- 增刪改查
- AR和model
- 模型事件
- 場景
- query查詢
- 增刪改
- AR查詢器
- 模型關系定義
- AR模型連表查詢
- fields
- where拼接
- 模塊
- 創建模塊
- 控制器
- 表單
- 跳轉
- 響應
- 驗證器
- Action
- 組件
- url
- 分頁
- 驗證碼
- 緩存
- 文件上傳
- 預啟動組件
- 事件
- 自定義組件
- redis
- 日志
- 行為
- cookie和session
- 基礎知識
- 創建一個類
- 配置一個類
- object基類
- component組件類特性
- phpstorm無法更改php等級
- url地址美化
- 過濾器
- 請求處理
- 請求組件
- 響應組件
- header
- 用戶登錄
- 實現IdentityInterface接口
- 登錄
- 自動檢測登錄
- 獲取用戶信息
- 訪問行為追蹤
- phpstorm+postman斷點調試