sql >> Database >  >> RDS >> Mysql

Forceer exacte string MATCH voor PDO voorbereide statements

Zorg ervoor dat u aanhalingstekens plaatst rond de variabele die is gespecificeerd 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();

Of je zou het ook in het MySQL-statement kunnen doen:

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

Volgens de MySQL-documentatie over Boolean Full-Text Searches :




  1. Een PostgreSQL-database controleren

  2. gegevens migreren van MS SQL naar PostgreSQL?

  3. geef het originele rijnummer van mySQL terug

  4. Gegevens plus indexgegevens in het geheugen bewaren - InnoDB vs. MyISAM