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

Wie verwende ich eine PHP-Zeichenfolge in einer mySQL LIKE-Abfrage?

Sie haben die Syntax falsch; Es ist nicht erforderlich, einen Punkt in eine Zeichenfolge in doppelten Anführungszeichen zu setzen. Stattdessen sollte es eher wie

aussehen
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");

Sie können dies bestätigen, indem Sie die Zeichenfolge ausdrucken, um zu sehen, dass sie identisch mit dem ersten Fall ausfällt.

Natürlich ist es keine gute Idee wegen der Gefahr der SQL-Injection einfach Variablen in die Abfragezeichenfolge einzufügen. Zumindest sollten Sie den Inhalt der Variablen manuell mit mysql_real_escape_string maskieren , wodurch es vielleicht so aussehen würde:

$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
               mysql_real_escape_string($prefix));
$query = mysql_query($sql);

Beachten Sie, dass innerhalb des ersten Arguments von sprintf das Prozentzeichen muss verdoppelt werden, damit es einmal im Ergebnis erscheint.