La connexion est établie en créant une instance de la classe de base PDO. Quel que soit le pilote utilisé, le nom de la classe PDO est utilisé.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);?>
Remarque : S'il y a des erreurs de connexion, un objet d'exception PDOException sera généré.
<?phptry { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r ($row); } $dbh = null;} catch (PDOException $e) { print "Erreur ! : " . "<br/>"; mourir();}?>
Après avoir connecté les données avec succès, une instance de la classe PDO est renvoyée au script. Cette connexion reste active pendant le cycle de vie de l'objet PDO.
Pour fermer la connexion, vous devez détruire l'objet pour vous assurer que toutes les références restantes à celui-ci sont supprimées. Vous pouvez attribuer une valeur NULL à la variable objet.
Si vous ne le faites pas, PHP fermera automatiquement la connexion à la fin du script.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // Utilisez la connexion ici // Maintenant l'exécution est terminée, fermez la connexion ici $dbh = null ;?>
De nombreuses applications Web bénéficient de l'utilisation de connexions persistantes aux services de base de données.
Les connexions persistantes ne sont pas fermées une fois le script terminé et sont mises en cache et réutilisées lorsqu'une autre demande de connexion de script utilisant les mêmes informations d'identification est effectuée.
La mise en cache des connexions persistantes peut rendre les applications Web plus rapides en évitant la surcharge liée à l'établissement d'une nouvelle connexion chaque fois qu'un script doit communiquer avec la base de données.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array( PDO::ATTR_PERSISTENT => true));?>
Remarque : Si vous souhaitez utiliser des connexions persistantes, vous devez définir PDO::ATTR_PERSISTENT dans le tableau d'options du pilote transmis au constructeur PDO. Si cet attribut est défini avec PDO::setAttribute() après l'initialisation de l'objet, le pilote n'utilisera pas de connexions persistantes.