Les biblioteques de codi 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 //connexió dins block try-catch: // prova d'executar el contingut del try // si falla executa el catch try { $hostname = "localhost"; $dbname = "mundo"; $username = "admin"; $pw = "admin123"; $pdo = new PDO ("mysql:host=$hostname;dbname=$dbname","$username","$pw"); } catch (PDOException $e) { // obtenim missatge d'error de l'excepció llançada echo "Error connectant a la BD: " . $e->getMessage() . "<br>\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']. "<br/>"; $row = $query->fetch(); } //versió alternativa amb foreach /*foreach ($query as $row) { echo $row['i']." - " . $row['a']. "<br/>"; }*/ //eliminem els objectes per alliberar memòria unset($pdo); unset($query) ?>
Exemple extret de PDO de Daniel Herrera.
PDO amb seguretat: