Corsi on-line

Binding dei parametri di query con PDO

Il binding dei parametri di query è un’utile procedura attraverso la quale è possibile sostituire i parametri da passare come argomenti alle interrogazioni verso le basi di dati attraverso una loro rappresentazione o riferimento; questa operazione risulta particolarmente interessante quando si desiderano prendere le necessarie contromisure per limitare i pericoli derivanti dalle SQL injection.

L’estensione PDO di PHP mette a disposizione il binding dei parametri nell’ambito dei prepared statements, attraverso di essi le query dovranno essere analizzate una sola volta anche se eseguite più volte con i medesimi parametri o meno; con i prepared statements un’applicazione non dovrà ripetere operazioni di analisi già eseguite, ne conseguirà un risparmio per quanto riguarda le risorse impiegate e migliori prestazioni in esecuzione.

Utilizzare il binding con PDO è molto semplice:

$obj = new PDO('mysql:dbname=prova;host=localhost', $user, $password);
$bind = $obj->prepare('INSERT INTO tabella (nome, cognome) VALUES (:nome, :cognome)');
$bind->bindParam(':nome', $nome);
$bind->bindParam(':cognome', $cognome);

“:nome” e “:cognome” rappresenteranno quindi i riferimenti ai parametri reali che potranno essere definiti successivamente tramite esecuzione, come nell’esempio seguente:

$nome = 'Pippo';
$cognome = 'Pluto';
$bind->execute();

Per il binding dei parametri esiste anche una versione semplificata basata sugli array:

$obj = new PDO('mysql:dbname=prova;host=localhost', $user, $password);
$bind = $obj->prepare('UPDATE tabella SET nome = :aggiorna_nome WHERE id = :id');
$bind->execute(array('aggiorna_nome' => $nome, 'id' => $id));

A voi la scelta di utilizzare una delle due forme proposte a seconda delle vostre esigenze e di quelle della vostra applicazione.

Post correlati
I più letti del mese
Tematiche