Yii中的SQL更新

enf*_*eld 1 sql yii

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

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

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

我的查询有什么问题?

Adr*_*ish 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();
Run Code Online (Sandbox Code Playgroud)