Apostrophe brechen meine MySQL-Abfrage in PHP

7

Meine Datenbank enthält Namenssätze, die gelegentlich Apostrophe enthalten, wie Joe's Bar , und ich habe gerade ein Abfrageskript in PHP programmiert, das dieses Feld in eine select-Anweisung mit dem üblichen $query = "SELECT address FROM restaurants WHERE name='$name'"; und dem Apostroph einfügt einige der Restaurantnamen entgleisen den Liebeszug.

Wie verhindere ich das?

Snide antwort - Benutze die gleiche Technik, die du benutzt hast, als du sie über PHP in die Datenbank eingefügt hast.
Widerlegung - Ich hatte das gleiche Problem und habe betrogen und hat die problematischen direkt mit PHPMyAdmin eingegeben, aber das kann nicht mehr ignoriert werden.

Danke, dass Sie sich die Zeit genommen haben, dies in den Ferien zu beantworten.

    
Drew 25.12.2009, 15:15
quelle

2 Antworten

17

Sie müssen $name = mysql_real_escape_string($name); vor dieser Zeile eingeben.

Sie können auch auf SQL Injections nachlesen, da Ihre Eingaben eindeutig unanitisiert sind.

    
styts 25.12.2009, 15:29
quelle

Tags und Links