Prepared Statements
I prepared statement sono delle caratteristiche di PHP che vengono usate per l'esecuzioni di SQL query con maggiore efficienza.Come funzionano?
- Viene creata un "template" di query che verrà inviata al database, i valori saranno sostituiti con dei parametri utilizzano un punto interrogativo "?". Esempio:
PHP:
SELECT * FROM data WHERE id = ?
- Vengono assegnati ai parametri dei valori tramite l'utilizzo di variabili e specificando che tipo di variabile è (int,string,double,etc..). Esempio:
PHP:
bind_param('i',$id);
- Viene eseguita la query attraverso funzione "execute()" con i parametri che gli abbiamo passato in precedenza attraverso il binding.
Che vantaggi ha?
- Sono veramente utili contro le SQL Injection, questo perché i parametri vengono introdotti successivamente con un protocollo differente e non c'è bisogno di fare alcun escaping dato che viene eseguito nel bind_param.
- Tempo di analisi della query molto ridotto in quanto la preparazione della query viene eseguita soltanto una volta.
- Minor uso di banda.
Come si utilizzano?
PHP:
$query = "SELECT * FROM data WHERE id = ?";
$query->bind_param('i',$id);
$id = rand(0,10);
$query->execute();
Viene creata una query dove andremo a mettere come parametro per l'id il "?", dopodiché andremo a fare il binding dei dati passando la variabile $id al punto interrogativo della query sopra, la i tra gli apici serve a identificare il tipo di variabile in questo caso Integer.
Infine andiamo a dichiarare la variabile $id (non importa la posizione) e come ultimo passaggio andiamo ad eseguire la query attraverso la funzione execute().
Tipi di variabili
Codice:
i = Integer
s = String
d = double
b = BLOB
Guida creata interamente da me, non copiate senza permesso.