通过查询构建器更新不起作用

Updating via query builder in is not working

我尝试使用 sql 命令更新列值,但它显示一般性失败。以下是我的更新代码:

$name = 'ABC';
$id = 2;
$command = Yii::$app->db->createCommand()
    ->update('companies', ['company_name' => $name], 'company_id ='.$id.'');
$result = $command->queryAll();

当我执行此代码时,会向我显示以下消息。

SQLSTATE[HY000]: General error The SQL being executed was: UPDATE companies SET company_name='ABC' WHERE company_id =2

Error Info: Array ( [0] => HY000 )

我不知道为什么。有人知道我在这里做错了什么吗?

UPD

$command = Yii::$app->db->createCommand()
    ->update('companies', ['company_name' => $name], 'company_id ='.$id.'')->execute();

无法将 $command->queryAll() 与更新命令一起使用。

您的代码中有几个错误。

首先,为什么要使用 queryAll()UPDATE 操作?删除此行:

$result = $command->queryAll();

第二个错误 - 缺少对 execute() 命令的调用。应该是:

$command = Yii::$app->db
    ->createCommand()
    ->update('companies', ['company_name' => $name], 'company_id ='.$id.'')
    ->execute();

查看 yii\db\Command, especially execute() and queryAll() 方法的文档。