当我使用这个查询时,我在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]
不添加那些引号不工作。
如文档中所述"文字值应该使用DboSource::value()手动引用。"
例如: -
$db = $this->Rh->CompetencesUser->getDataSource();
$this->Rh->CompetencesUser->updateAll(
['CompetencesUser.niveau' => $db->value($value[1], 'string')],
[ // Some conditions ]
);
在大多数情况下,updateAll()
不是保存数据的正确选择,save()
更适合。请看CakePHP 2的updateAll()方法。