0

我尝试使用 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 companiesSET company_name='ABC' WHERE company_id =2

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

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

UPD

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

不能$command->queryAll()与更新命令一起使用。

4

1 回答 1

0

您的代码中有几个错误。

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

$result = $command->queryAll();

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

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

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

于 2015-01-22T08:36:56.480 回答