我正在研究Oracle DataBase和CakePHP 2.3。 由于CakePHP不支持Oracle(没有驱动程序),我在我的模型中使用Oracle程序或php OCI8函数。
因此,我正在使用CakePHP,在CakePHP框架的眼中没有任何有效的数据库链接。
我正在尝试使用Sanitize::clean
方法在将注释保存到数据库之前清除注释,并且我遇到了麻烦,因为它似乎在数据库中查找其任务。
这是结果错误:
数据库连接“Mysql”丢失或无法创建。
这就是我尝试消毒的方法:
$comment = Sanitize::clean($this->request->data['comment']);
如果我这样做,它的效果非常好:
$comment = $this->request->data['comment'];
在CakePHP 2.3中没有任何已配置的数据库,是否有可能以某种方式使用Sanitize::clean
?
由于
答案 0 :(得分:1)
函数Sanitize :: clean()需要2个参数,默认情况下,当您没有给出第二个参数时,CakePHP使用其默认值并尝试使用“默认”连接连接到DB。快速浏览一下库中的Sanitize类后,看起来它是需要数据库连接的'escape'选项。默认情况下调用它使字符串SQL安全。
因此,在您的情况下,由于您不需要SQL连接,因此该请求应该可以解决问题:
$comment = Sanitize::clean($this->request->data['comment'], array('escape' => false);
Check the CookBook for more information on the Sanitize class.