Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erzwingen Sie eine exakte Zeichenfolgenübereinstimmung für vorbereitete PDO-Anweisungen

Stellen Sie sicher, dass Sie die in AGAINST angegebene Variable in Anführungszeichen setzen .

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

Oder Sie könnten es auch in der MySQL-Anweisung tun:

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

Gemäß der MySQL-Dokumentation zu booleschen Volltextsuchen :