2010-02-23 3 views
6

Ich habe eine MySQL-Abfrage in PHP, mit Match/gegen Filterergebnisse. Ich versuche, einen Platzhalter nach $ string zu bekommen, so dass das nächste Zeichen alles sein kann. Hilfe?Mysql Abfrage gegen Wildcard

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)" 

Antwort

6

Verwenden * statt % als Platzhalter, wenn MATCH (...) AGAINST (...) mit:

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)" 
2

Sie Variablen in Strings in doppelten Anführungszeichen nicht einbetten und Sie werden eingestellt:

"SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)" 

Das, gesagt ich das gültige SQL nicht bestätigen kann, ist. Aber zumindest wird es sicherstellen, dass Ihre Variable richtig erweitert wird und wenn es nicht funktioniert, dann wird es nicht wegen PHP sein.

Und nur für den Fall, dass diese Erinnerung nützlich sein wird, vergessen Nevar zu escape data that goes into a query.