CakePHP - 如何在条件数组中处理双引号

时间:2013-06-20 02:51:23

标签: cakephp

请参阅以下示例代码:

$conditions = array("Post.title" => 'This is a "Book"');
// Example usage with a model:
$this->Post->find('first', array('conditions' => $conditions));

因为find()实际上查找title ='这是一个\“Book \”',所以没有返回结果。我想知道如何防止find()添加反斜杠。或者还有其他解决方案吗?

==固定==

*实际上当我使用updateAll($ field,$ conditions)而不是find()时发生错误。我没有把引用放在文字值附近。例如,$ field = array('title'=> $ some_title)应为$ field = array('title'=>“'”。Sanitize :: escape($ some_title)。“'”)。不喜欢CakePHP处理这个问题的方式。*

2 个答案:

答案 0 :(得分:2)

你一定是弄错了。错误必须在其他地方。 生成的SQL查询确实包含

 LIKE 'foo \"bar\"'

但逃避实际上是故意的。 我仍然会使用foo "bar"打开数据库条目 - 我只是自己尝试使用cake2.3 / 2.4。

所以CakePHP工作正常。

答案 1 :(得分:0)

刚用cakePhp版本2.3.5检查,双引号工作正常,请检查以下代码中的配置文件控制器。

$data = $this->Profile->find('all',array('conditions'=>array('Profile.type'=>'user "one"')));
pr($data);