执行非查询语句(Executing Non-SELECT Queries)
对于那些不取回数据的语句, 你应该调用的是 yii\db\Command::execute() 方法。例如,
Yii::$app->db->createCommand('UPDATE post SET status=1 WHERE id=1')
->execute();
yii\db\Command::execute()
方法返回执行 SQL 所影响到的行数。
对于 INSERT, UPDATE 和 DELETE 语句,不再需要写纯SQL语句了, 你可以直接调用 insert()、update()、delete(), 来构建相应的 SQL 语句。这些方法将正确地引用表和列名称以及绑定参数值。例如,
// INSERT (table name, column values)
Yii::$app->db->createCommand()->insert('user', [
'name' => 'Sam',
'age' => 30,
])->execute();
// UPDATE (table name, column values, condition)
Yii::$app->db->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
// DELETE (table name, condition)
Yii::$app->db->createCommand()->delete('user', 'status = 0')->execute();