2009-12-25 16 views
7

Il mio database contiene record di nomi che a volte contengono apostrofi, come ad esempio Joe's Bar e ho appena scritto uno script di query in PHP che acquisisce quel campo e lo inserisce in un'istruzione select con il solito $query = "SELECT address FROM restaurants WHERE name='$name'"; e l'apostrofo in alcuni dei nomi dei ristoranti deraglia il treno dell'amore.interrompono la query mysql in PHP

Come posso evitare che ciò accada?

risposta Snide - Usa la stessa tecnica che hai usato quando li hai inseriti nel database tramite PHP.
Confutazione - Avevo lo stesso problema e ho ingannato e inserito quelli fastidiosi direttamente utilizzando PHPMyAdmin, ma questo non può essere ignorato più.

Grazie per aver dedicato del tempo per rispondere a questo durante le vacanze.

risposta

17

Dovete $name = mysql_real_escape_string($name); prima di quella linea.

Si potrebbe anche voler leggere su SQL Injections, dal momento che i tuoi ingressi sono chiaramente non pubblicitari.