我有一个查询,可以查询任意数量的单词。可以是john
,john doe
,john company
,john doe, company
,甚至是doe company
或'company doe'。
您可能猜到了我现在想找到这个人。因此,我必须查找3列(假设first_name
,last_name
,company
),其中包含我不知道其确切结构的查询。
如何使用没有安全漏洞的MATCH/AGAINST
构造查询?
我在这里不清楚两件事:1)获得正确结果的逻辑是什么,以及2)如何不留下安全漏洞。这就是安全性的意思-我发现在CakePHP中进行全文搜索的唯一方法是:
'conditions' => "MATCH(SearchIndex.data) AGAINST('$q' IN BOOLEAN MODE)",
但是所有人都说这是可以接受的。
最佳答案
尝试
'conditions' => array(
"MATCH(SearchIndex.data) AGAINST(? IN BOOLEAN MODE)" => $q
),