在我的控制器中给出以下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验证了它们。
我的查询有什么问题?
答案 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();