Sebbene tu possa avere la tua query perfettamente sicura senza vincolare (formattando tutte le variabili manualmente), l'uso di istruzioni preparate per rappresentare i tuoi dati nella query è davvero l'unico modo corretto.
L'importanza dell'utilizzo di dichiarazioni preparate è spesso giudicata erroneamente, quindi vorrei chiarire i reali vantaggi:
- L'istruzione preparata rende la formattazione (o la gestione) corretta inevitabile .
- l'istruzione preparata esegue la formattazione (o la gestione) corretta nell'unico posto corretto - subito prima dell'esecuzione della query, non da qualche altra parte, quindi la nostra sicurezza non si baserà su fonti inaffidabili come
- qualche caratteristica 'magica' di PHP che rovina i dati piuttosto che renderli sicuri.
- buona volontà di uno (o più) programmatori, che possono decidere di formattare (o non formattare) la nostra variabile da qualche parte nel flusso del programma. Questo è il punto di grande importanza.
- L'istruzione preparata influisce sul valore stesso che sta entrando nella query, ma non sulla variabile sorgente, che rimane intatta e può essere utilizzata nell'ulteriore codice (da inviare via e-mail o mostrata sullo schermo).
- L'istruzione preparata può ridurre notevolmente il codice dell'applicazione, eseguendo tutta la formattazione dietro le quinte (*solo se il driver lo consente).