2013-05-02 101 views
1

我正在使用Oracle DataBase和CakePHP 2.3。 由于CakePHP不支持Oracle(没有驱动程序),我在我的模型中使用Oracle过程或php OCI8函数。因此,我在CakePHP框架下使用CakePHP时没有任何有效的数据库链接。在CakePHP 2.3上使用Sanitize :: clean无数据库连接

我试图使用Sanitize::clean方法来清理注释,然后将其保存到数据库中,我遇到了麻烦,因为它似乎在数据库中查看其任务。

这是导致错误:

Database connection "Mysql" is missing, or could not be created.

这就是我如何努力来净化它:

$comment = Sanitize::clean($this->request->data['comment']); 

它工作得很好,如果我只是这样做:

$comment = $this->request->data['comment']; 

有没有可能在CakePHP 2.3上使用Sanitize::clean没有任何配置的数据库?

感谢

+0

什么错误(S),你当你试图使用它?使用它时也请张贴您的实际代码。 – Dave 2013-05-02 13:43:25

+0

我已更新我的问题。虽然我的代码不太相关:) – Alvaro 2013-05-02 13:45:58

+0

它显示相同的错误。 – Alvaro 2013-05-02 13:56:00

回答

1

功能消毒清洁::()预计2个参数,默认情况下,当你不给第二个参数CakePHP的使用它的默认值,并试图与“默认”连接连接到一个数据库。快速浏览库中的Sanitize类后,看起来它是需要数据库连接的“转义”选项。它在默认情况下被调用以使字符串SQL安全。

所以你的情况,因为你不需要SQL连接,这一要求应该做的伎俩:

$comment = Sanitize::clean($this->request->data['comment'], array('escape' => false);

Check the CookBook for more information on the Sanitize class.

+0

谢谢,它运作良好! – Alvaro 2013-05-03 13:19:06