我试图从Yii框架更新表,但得到错误
我的代码如下:$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
您应该使用execute
函数而不是queryAll
。queryAll
为SQL (SELECT
语句),execute
为DML (UPDATE
, INSERT
, DELETE
语句)。见文档。
您还应该考虑在使用框架时绑定参数,而不是注入它们(出于安全和健全的原因)。
我建议:
$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],
);