执行非查询语句(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();