通过查询构建器更新无效

时间:2015-01-22 08:18:31

标签: sql yii2 yii2-advanced-app

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

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

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

  

SQLSTATE [HY000]:常规错误   正在执行的SQL是:UPDATE companies SET company_name ='ABC'WHERERE_id = 2

     

错误信息:数组   (       [0] => HY000   )

我无法找出原因。有没有人知道,我在这里做错了什么?

UPD

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

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

1 个答案:

答案 0 :(得分:0)

您的代码中有几处错误。

首先,为什么您使用queryAll()进行UPDATE操作?删除这一行:

$result = $command->queryAll();

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

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

查看yii\db\Command的文档,尤其是execute()queryAll()方法。