====== PDO: PHP Database Objects ====== ===== Introducció ===== Les **biblioteques de codi [[https://www.php.net/manual/es/book.pdo.php|PDO o PHP Database Objects (doc oficial)]]** tenen el gran avantatge que ens permet canviar de tipus de BD a la que ens connectem sense alterar les funcions de connexió i llançament de //queries//. Les (petites) diferències entre unes i altres en el llenguatge SQL no ho solventa, però no és gaire problema ja que aquestes diferències solen ser poques. Articles relacionats en aquesta wiki: * [[PHP MySQL]] * [[Fites DAW MP07 UF3]] * [[SQL injection]] ===== Exemple ===== getMessage() . "
\n"; exit; } try { //preparem i executem la consulta $query = $pdo->prepare("SELECT name,code FROM country"); $query->execute(); } catch (PDOException $e) { // alternativa: obtenim missatge d'error de $query $err = $query->errorInfo(); if ($err[0]!='00000') { echo "\nPDO::errorInfo():\n"; die("Error accedint a dades: " . $err[2]); } } //anem agafant les fileres una a una $row = $query->fetch(); while ( $row ) { echo $row['code']." - " . $row['name']. "
"; $row = $query->fetch(); } //versió alternativa amb foreach /*foreach ($query as $row) { echo $row['i']." - " . $row['a']. "
"; }*/ //eliminem els objectes per alliberar memòria unset($pdo); unset($query) ?>
Exemple extret de [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-acces-a-dades-amb-pdo/readme.md|PDO de Daniel Herrera]]. \\ ===== Seguretat ===== PDO amb seguretat: * [[SQL injection]] en aquesta wiki. * [[https://diego.com.es/tutorial-de-pdo|Tutorial PDO amb seguretat]]. * [[https://www.php.net/manual/es/pdostatement.bindparam.php#refsect1-pdostatement.bindparam-examples|Exemples de PDO amb seguretat (bindParams) a la pàgina oficial de PHP]]