我有一个对任意数量的单词开放的查询。可以是john
,john doe
,john company
,john doe, company
,甚至是doe company
或'公司母公司'。
你可能猜到我现在想找到这个人。因此,我必须查找3列(让我们说first_name
,last_name
,company
)查询,其中我不知道确切的结构。
如何使用MATCH/AGAINST
构建一个没有安全漏洞的查询?
我有两件事我不清楚:1)获得正确结果的逻辑是什么,以及2)如何不留下安全漏洞。这就是我对安全性的意思 - 我发现在CakePHP中进行全文搜索的唯一方法是:
'conditions' => "MATCH(SearchIndex.data) AGAINST('$q' IN BOOLEAN MODE)",
然而每个人都说这是开放注射。
答案 0 :(得分:2)
试
'conditions' => array(
"MATCH(SearchIndex.data) AGAINST(? IN BOOLEAN MODE)" => $q
),