Mysql
 sql >> Database >  >> RDS >> Mysql

Forza la stringa esatta MATCH per le istruzioni preparate da PDO

Assicurati di mettere le virgolette intorno alla variabile specificata in AGAINST .

In PHP:

$some_term = '"'.$some_term.'"'; // Adds quotes around string

$stmt = $db->prepare('SELECT * FROM example WHERE MATCH(some_column) AGAINST(:some_term)');
$stmt->bindParam(':some_term', $some_term, PDO::PARAM_STR);
$stmt->execute();

Oppure potresti farlo anche nell'istruzione MySQL:

$stmt = $db->prepare('SELECT * FROM example WHERE MATCH(some_column) AGAINST(CONCAT(\'"\',:some_term,\'"\')');
$stmt->bindParam(':some_term', $some_term, PDO::PARAM_STR);
$stmt->execute();

Secondo la documentazione MySQL sulle ricerche booleane full-text :