我尝试使用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
SETcompany_name
='ABC'WHERERE_id = 2错误信息:数组 ( [0] => HY000 )
我无法找出原因。有没有人知道,我在这里做错了什么?
UPD
$command = Yii::$app->db->createCommand()
->update('companies', ['company_name' => $name], 'company_id ='.$id.'')->execute();
无法将$command->queryAll()
与更新命令一起使用。
答案 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()方法。