Yii中的SQL更新

时间:2011-11-27 22:37:36

标签: sql yii

在我的控制器中给出以下UPDATE查询

$connection = yii::app()->db;
$sql = "UPDATE list SET Status = 'R' WHERE ".$_POST['ListId']."=".$_POST['RListId'];
$command=$connection->createCommand($sql);
$command->execute();

这会将每条记录更改为Status = 'R',而不仅仅是具有匹配参数的记录。 $_POST['ListId']$_POST['RListId']正是我需要的,我通过控制器中的var_dump验证了它们。

我的查询有什么问题?

1 个答案:

答案 0 :(得分:5)

您的where子句中没有字段名称。所以它可能是你有1 = 1的地方,每条记录的评估结果为真。

作为猜测,我认为你想要这样的东西

Yii::app()->db
    ->createCommand("UPDATE list SET Status = 'R' WHERE ListId=:ListId OR RListID=:RListID")
    ->bindValues(array(':ListId' => $_POST['ListId'], ':RListID' => $_POST['RListId']))
    ->execute();