Mysql
 sql >> Base de données >  >> RDS >> Mysql

Forcer la chaîne exacte MATCH pour les instructions préparées PDO

Assurez-vous de mettre des guillemets autour de la variable spécifiée dans AGAINST .

En 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();

Ou vous pouvez également le faire dans l'instruction 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();

Selon la documentation MySQL sur les recherches booléennes en texte intégral :