简体   繁体   中英

CakePHP: Mysql search multiple queries on multiple columns

I have a query that is open to any number of words. Can be john , john doe , john company , john doe, company , or even doe company or 'company doe'.

You probably guessed I want to find this guy now. So I have to be looking for 3 columns (let's say first_name , last_name , company ) with a query of which I don't know the exact structure.

How would I construct a query with MATCH/AGAINST without security holes?

There are two things I am not clear here: 1) What the logic would be to get the right results and 2) how not to leave security holes. Here is what I mean about security - the only way I find to do fulltext search in CakePHP is with:

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

But then everybody says this is open to injection.

try

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM