0

请参阅以下示例代码:

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

因为 find() 实际上是在寻找 title = 'This is a \"Book\"',所以没有返回结果。我想知道如何防止 find() 添加反斜杠。或者有没有其他解决方案?

==固定==

*实际上错误发生在我使用updateAll($field, $conditions),而不是find()时。我没有在文字值周围加上引号。例如, $field = array('title' => $some_title) 应该是 $field = array('title' => "'" . Sanitize::escape($some_title) . "'") 。不过不喜欢 CakePHP 处理这个问题的方式。*

4

2 回答 2

2

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

 LIKE 'foo \"bar\"'

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

所以 CakePHP 工作正常。

于 2013-06-20T05:48:55.267 回答
0

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

$data = $this->Profile->find('all',array('conditions'=>array('Profile.type'=>'user "one"')));
pr($data);
于 2013-06-20T06:46:35.807 回答