Consultes preparades amb PDO

PDO permet preparar les consultes que llençarem contra la base de dades abans de ser executades i definir els paràmetres o variables que utilitzarem a la sentència, són les anomenades "bind variables".

Això ens permet escapar correctament les variables de forma segura i alhora llençar la mateixa consulta "precompilada" varies vegades modificant només els valor de les "bind variables" sense haver de construir la consulta de nou, i aconseguint una notable millora en el rendiment respecte a la situació en que construíssim una consulta nova cada cop.

Veiem-ne un exemple:

// Construïm i preparem la consulta
$sql = 'SELECT * FROM regio WHERE habitants > :habitants AND tipus = :tipus';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

// Recuperem els municipis de mes de 1.000 habitants
$sth->execute(array(':habitants' => 1000, ':tipus' => 'municipi'));
$municipis = $sth->fetchAll();

// Recuperem les comarques de mes de 100.000 habitants
$sth->execute(array(':habitants' => 100000, ':tipus' => 'comarca'));
$comarques = $sth->fetchAll();

// Recuperem les vegueries de mes de 500.000 habitants
$sth->execute(array(':habitants' => 500000, ':tipus' => 'vegueria'));
$vegueries = $sth->fetchAll();

Fixem-nos que només em definit un sol cop la consulta, la hem preparat, i tot seguit hem pogut anar recuperant varies vegades les dades modificant les variables que havíem definit sense haver de tornar a construir la consulta.

1
Grups de treball:
Plataforma PHP