当我使用此查询时,我遇到了cakephp中的问题
$this->Rh->CompetencesUser->updateAll(array(
'CompetencesUser.niveau' => "'$value[1]'",
'CompetencesUser.expertise' => $value[2],
'CompetencesUser.rh_id' => $this->Rh->getLastInsertId()
), array(
'CompetencesUser.user_id' => $this->request->params['pass'][0],
'CompetencesUser.competence_id' => $value[3]
));
它可以工作但是当我给出一些像'在字段$value[1]
中的字符时它显示错误,所以我如何逃避这个字符或者我可以使用另一种方法,因为$value[1]
没有没有添加这些引号就可以工作。
答案 0 :(得分:3)
如the docs&#34中所述;应使用DboSource :: value()手动引用文字值。"
例如: -
$db = $this->Rh->CompetencesUser->getDataSource();
$this->Rh->CompetencesUser->updateAll(
['CompetencesUser.niveau' => $db->value($value[1], 'string')],
[ // Some conditions ]
);
在大多数情况下,updateAll()
不是保存数据的正确方法选择,save()
会更适合。看看Use CakePHP 2's updateAll() Method with Caution!