我想用cakePHP语法编写这个SQL语句:
UPDATE students SET status = 'graduated' WHERE age = '23' AND major = 'math';
现在,我尝试在蛋糕中做这个的方式是
$student->updateAll( array('Student.status' => "'".$rowdata."'"),
array('Student.age' => $current_highest_age,'Student.major' =>
"'".$major."'"));
我的变量:$ rowdata ='毕业'; $ current_highest_age = 23;和$ major ='math'。
该表未更新。我的语法有问题吗?我将非常感谢你的帮助。
问题更新:
实际上,我发现我的语法错误。蛋糕代码应为'Student.major' => $major
而不是'Student.major'=>"'".$major."'"
答案 0 :(得分:3)
updateAll期望字段是SQL表达式(或简称为引用字符串),但条件不应该是。因此,您现在要生成的查询是:
UPDATE
students
SET
status = 'graduated'
WHERE
age = '23' AND
major = '\'math\''
为了防止多余的引号,这将导致语法上有效的语句匹配0行,只需让Cake像其他方法一样照顾你的条件:
$student->updateAll(
array('Student.status' => "'".$rowdata."'"),
array(
'Student.age' => $current_highest_age,
'Student.major' => $major
)
);
答案 1 :(得分:0)
更新模型字段的简便方法
$this->Testing->updateAll(
array('Testing.door_open_close' => $door_open_close), // value that is updated
array('Testing.id' => $zoneId) // condition field of a Model
);
答案 2 :(得分:-2)
UPDATE students ...
^^^^^^^^--- student WITH an S
v.s。
array('Student.age')
^^^^^^^ - student WITHOUT an S