我正在尝试从Yii Framework更新表,但收到错误
我的代码如下:
$updatebrick = Yii::app()->db->createCommand("update link_bricks SET parent_id=". $v[parent_id] ." where child_id=". $k[micro_brick_id] ." ORDER BY id ASC LIMIT 1")->queryAll();
错误:
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error. The SQL statement executed was: update link_bricks SET parent_id=1963 where child_id=15793 ORDER BY id ASC LIMIT 1
答案 0 :(得分:2)
您应该使用execute
功能而不是queryAll
。 queryAll
用于SQL(SELECT
语句),execute
用于DML(UPDATE
,INSERT
,DELETE
语句。
见docs。
您还应该考虑使用框架绑定参数,而不是注入它们(出于安全和理智的原因)。
我建议:
$sql='
UPDATE link_bricks
SET parent_id=:parent_id
WHERE child_id=:child_id
ORDER BY id ASC
LIMIT 1
';
$command=Yii::app()->db->createCommand($sql);
$update=$command->execute(array(
'parent_id'=>$v[parent_id],
'child_id'=>$k[child_id],
);