PDO avec PHP 5

Fonctionnement de PDO

L’extension PHP Data Objects (PDO) propose une interface légère et cohérente pour accéder aux bases de données. Tout SGBD implémenté avec PDO peut utiliser ses fonctions comme des fonctions classiques propres au SGBD en question. A noter que vous ne pourrez pas exploiter nativement les fonctionnalités de PDO. Le SGBD utilisé doit pouvoir supporter l’extension PDO.

SGBD pouvant exploiter PDO
Driver
SGBD
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_IBM IBM DB2
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x/5.x
PDO_OCI Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 and SQLite 2

PDO offre une couche d’abstraction à l’accès aux bdd, ce qui signifie que quel que soit le SGBD utilisé, vous pouvez utiliser les mêmes fonctions pour exécuter vos requêtes et récupérer les données.

PDO tourne avec PHP 5.1
. Les nouvelles fonctionnalités OO de PHP 5 sont requises pour utiliser PDO. Les versions antérieures de PHP ne pourront exploiter PDO.

+ PHP 5.1 et supérieur sur les sytèmes Unix

1. Si vous utilisez PHP 5.1, PDO et PDO_SQLITE sont inclus dans la distribution. Ils sont nativement disponibles. Il est recommandé que votre configuration de PDO soit en en extension partagée ainsi vous profiterez régulièrement des mises à jour disponibles via PECL (PHP Extension Community Library). Vous devrez également rendre le driver PDO de votre SGBD disponible: si votre configuration PDO est en extension partagée, le driver PDO de votre SGBD devra l’être également. L’extension SQLite dépend de PDO, donc si PDO est paramétré en extension partagée, SQLite doit l’être aussi.

./configure –with-zlib –enable-pdo=shared –with-pdo-sqlite=shared –with-sqlite=shared

2. Après avoir installé PDO comme un module partagé, vous devez éditez le php.ini afin que l’extension PDO soit chargée automatiquement lorsque vous lancerez votre serveur PHP.  Vous devez également rendre disponible le driver PDO spécifique à votre SGBD (cf tableau ci-dessus) en décommentant la ligne correspondante sous la ligne pdo.so du php.ini.

extension=pdo.so

3. Paramétrer PDO en tant que module partagé vous permettra d’être à jour sur les dernières versions de PDO publiées (via PECL) sans pour autant avoir besoin de recompiler l’ensemble de PHP. Notez que si vous faites cela, vous devez également mettre à jour le pilotes PDO spécifique à votre base de données.

+ PHP 5.0.0 et supérieur sur les sytèmes Unix

1. PDO est disponible en tant qu’extension PECL depuis http://pecl.php.net/package/pdo. L’installation peut être effectuée via la commande PECL. Cette option est activée par défaut lorsque vous configurez PHP. Vous devez vous assurer que PHP a été configuré avec - with-zlib pour que PECL puisse être capable de gérer les paquets compressés.

2. Exécutez la commande suivante pour télécharger, compiler et installer la dernière version stable de PDO:

pecl install pdo

3. La commande pecl installe automatiquement le module PDO dans votre dossier d’extensions PHP. Pour activer l’extension PDO sous Linux ou les systèmes d’exploitation Unix, vous devez ajouter la ligne suivante dans votre fichier php.ini:

extension=pdo.so

+ Utilisateurs de Windows avec PHP 5.1.0 et plus

1. PDO ainsi que tous les drivers principaux interagissent avec PHP en tant qu’extensions partagées, et ont tout simplement besoin d’être activés en éditant le fichier php.ini:

extension=php_pdo.dll

2. Ensuite décommentez le pilote spécifique au SGBD que vous utilisez. La ligne à décommenter doit se trouver sous extension=php_pdo.dll:

extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

Ces DLL doivent exister dans le système extension_dir. Notez que PDO_INFORMIX est seulement disponible en tant qu’extension PECL.