2014-05-19 40 views
0

我有一個查詢可以打開任意數量的單詞。可以是john,john doe,john company,john doe, company或甚至doe company或'公司doe'。CakePHP:Mysql在多列上搜索多個查詢

你可能猜到了我現在想找到這個人。所以我必須尋找3列(比如first_name,last_name,company),查詢我不知道確切的結構。

如何構造一個沒有安全漏洞的MATCH/AGAINST查詢?

我在這裏不清楚兩件事:1)什麼邏輯會得到正確的結果,以及2)如何不留下安全漏洞。以下是我的意思是有關安全的 - 我覺得做全文搜索在CakePHP中的唯一方法是:

'conditions' => "MATCH(SearchIndex.data) AGAINST('$q' IN BOOLEAN MODE)", 

但後來大家說,這是開放的注射。

回答

2

嘗試

'conditions' => array(
    "MATCH(SearchIndex.data) AGAINST(? IN BOOLEAN MODE)" => $q 
),