2013-05-02 102 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