2012-11-15 39 views
4

我的插件中有一些複雜的查詢,需要我使用​​而不是->find()方法。在原始sql上清理幫助

我無法理解如何清理原始sql,所以我猜這裏的某個人可以指導我。

因此,第一步是在類的聲明之前包含App:import("sanitize");

現在讓我們說我有這樣的:

$query = $this->Mytable->query("SELECT * FROM mytable WHERE " . $WHERECLAUSE . ";");

可有一個人幫我在我的消毒查詢隨着我的食譜完全喪失。

感謝您的幫助,非常感謝。

回答

1

使用此:消毒::乾淨($查詢,$選項)

+0

嗨,感謝您的快速回復。 $ options變量中有什麼? –

+0

閱讀此:http://book.cakephp.org/2.0/en/core-utility-libraries/sanitize.html – Nabeel

+0

好吧,如果我設置我的數據庫變量在應用程序/配置/ database.php到$ mydb,做我設置它像這樣Sanitize :: clean($ query,$ mydb); –

0

消毒::乾淨用於值/整個陣列如$這個 - >數據。

$WHERECLAUSE = Sanitize::clean($whereclause, array('escape')); 
$query = $this->Mytable->query("SELECT * FROM mytable WHERE " . $WHERECLAUSE . ";"); 

這會做到這一點。

array('escape')
用於SQL語句。