logo

Introduction à PHP PDO

PHP est un langage de script open source à usage général, largement utilisé pour créer des pages Web dynamiques et interactives. PHP peut accéder à une large gamme de systèmes de gestion de bases de données relationnelles tels que MYSQL, SQLite , et PostgreSQL . Le PHP5.1 version offrait une nouvelle bibliothèque d'abstraction de connexion à la base de données, qui est Objets de données PHP (AOP).

Qu’est-ce que l’AOP ?

AOP fait référence à Objet de données PHP , qui est une extension PHP qui définit une interface légère et cohérente pour accéder à une base de données en PHP. Il s'agit d'un ensemble d'extensions PHP qui fournissent une classe PDO de base et un pilote spécifique à la base de données. Chaque pilote de base de données peut exposer des fonctionnalités spécifiques à la base de données en tant que fonction d'extension standard qui implémente l'interface PDO.

Remarque : Nous ne pouvons exécuter aucun type de fonction de base de données en utilisant l'extension PDO elle-même. Pour accéder à un serveur de base de données, nous devons utiliser un pilote PDO spécifique à la base de données.

PDO se concentre principalement sur l’abstraction de l’accès aux données plutôt que sur l’abstraction de la base de données. Il offre couche d'abstraction d'accès aux données , ce qui signifie que quelle que soit la base de données que nous utilisons, nous devons utiliser les mêmes fonctions fournies par cette base de données pour émettre des requêtes et récupérer des données. PDO ne fournit pas d'abstraction de données, car il ne réécrit pas le SQL ni n'émule les fonctionnalités manquantes.

Avantage de l'AOP

PDO propose différentes manières de travailler avec des objets et récupère des instructions préparées qui facilitent grandement le travail. Il s'agit d'un outil d'accès aux bases de données en PHP grâce auquel nous permettons un accès uniforme sur plusieurs bases de données.

PDO permet une commutation relativement transparente entre différentes bases de données et plates-formes, ce qui peut être facilement effectué en modifiant la chaîne de connexion. Il ne prend pas en charge les syntaxes spécifiques aux bases de données.

Le PDO présente certains avantages comme suit :

    Prise en charge de la base de données
    L'extension PDO peut accéder à n'importe quelle base de données écrite pour le pilote PDO. Il existe plusieurs pilotes PDO disponibles qui sont utilisés pour FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , et PostgreSQL bases de données, parmi bien d’autres.
    Les pilotes ne sont pas disponibles automatiquement dans tous les systèmes, nous devons donc rechercher nos pilotes disponibles et en ajouter lorsque nous en avons besoin.Connexion à la base de données
    Il existe différentes syntaxes disponibles pour établir la connexion à la base de données. Ces syntaxes dépendent de bases de données spécifiques. Lors de l'utilisation de PDO, les opérations doivent être encapsulées dans des blocs try/catch et utiliser la technique d'exception.
    Habituellement, une seule connexion doit être créée, et ces connexions sont fermées en programmant la base de données pour qu'elle soit définie comme nulle.La gestion des erreurs
    PDO permet d'utiliser des exceptions pour la gestion des erreurs. Pour produire une exception, PDO peut être forcé dans un attribut de mode d'erreur pertinent.
    Il existe trois modes d'erreur, à savoir Silencieux (défaut), Avertissement , et Exception . Warning et Exception sont plus utiles dans la programmation DRY.
      Silencieux- C'est un mode d'erreur par défaut.Avertissement- C'est utile pour le débogage.Exception- Ce mode permet une gestion gracieuse des erreurs tout en masquant les données qu'une personne pourrait utiliser pour exploiter votre système.
    Insérer et mettre à jour
    PDO réduit l'opération d'insertion et de mise à jour de base de données couramment utilisée en un processus en deux étapes, c'est-à-dire
    Préparer >> [Lier] >> Exécuter.
    Grâce à cette méthode, nous pouvons tirer pleinement parti des instructions préparées par PDO, qui protègent contre les attaques malveillantes via l'injection SQL.
    Les instructions préparées sont des instructions SQL précompilées qui peuvent être exécutées plusieurs fois en envoyant ces données au serveur. Ces données, qui sont utilisées dans l'espace réservé, sont automatiquement protégées contre l'attaque par injection SQL.

Avantages de l'utilisation de l'AOP

PDO est le pilote de base de données natif. L’utilisation du PDO présente certains avantages suivants :

    Convivialité- Il contient de nombreuses fonctions d'assistance pour effectuer des opérations de routine automatiques.Réutilisabilité- Il propose l'API unifiée pour accéder à plusieurs bases de données.Sécurité- Il utilise une instruction préparée qui protège de l'injection SQL. Une instruction préparée est une instruction SQL précompilée qui sépare les instructions de l'instruction SQL des données.

Classes AOP

Il existe trois classes PDO, indiquées ci-dessous :

    AOP- Il représente une connexion entre PHP et la base de données.Déclaration PDO- Il représente l'instruction préparée et après l'exécution de l'instruction, définit un résultat associé.PDOException- Il représente les erreurs soulevées par PDO.

Bases de données prises en charge par PDO

  1. MySQL
  2. PostgreSQL
  3. Oracle
  4. Oiseau de feu
  5. Serveur MS SQL
  6. Sybase
  7. Informix
  8. IBM
  9. TDS gratuit
  10. SQLite
  11. Cubride
  12. 4D

Comparaison entre PDO et MySQLi

Pour accéder à la base de données en utilisant PHP, nous avons principalement deux options - MySQLi et AOP (Objet de données PHP). MySQLi est un natif de PHP qui offre des performances plus rapides, alors que la plupart des développeurs expérimentés préfèrent travailler avec PDO car il prend en charge une grande variété de pilotes de base de données. Il existe quelques différences entre PDO et MySQLi répertoriées ci-dessous en fonction de leurs fonctionnalités.

Caractéristiques AOP MySQLi
Prise en charge de la base de données 12 pilotes différents MySQL uniquement
Connexion Facile Facile
API OUVRIR POO + Procédure
Performance Rapide Rapide
Paramètre nommé Oui Non
Mappage d'objets Oui Oui
Procédure stockée Oui Oui
Relevés préparés côté client Oui Non
Sécurité Plus sécurisé que MySQLi. Sécurisé mais pas plus qu'AOP.

Lequel faut-il privilégier entre PDO ou MySQLi ?

PDO et MySQLi ont tous deux leurs propres avantages :

série dans Postgres
  • Comme nous l'avons vu précédemment, PDO fonctionne sur 12 systèmes de bases de données différents, alors que MySQL ne peut fonctionner qu'avec la base de données MySQL. Ainsi, si nous souhaitons basculer notre projet vers une autre base de données, PDO nous facilite la tâche. Dans MySQLi, nous devons réécrire tout le code.
  • PDO et MySQLi sont tous deux orientés objet, mais MySQLi propose également une API procédurale. Les deux prennent en charge les déclarations préparées. Les instructions préparées sont importantes pour la sécurité des applications Web, car elles protègent contre l'injection SQL.

Exigence

Il n'est pas nécessaire de recourir à des bibliothèques externes pour créer cette extension.

Processus d'installation

Étape 1: Téléchargez le dernier serveur XAMPP à partir d'ici https://www.apachefriends.org/download.html pour différentes plates-formes comme Windows, Linux et MacOS.

Phppdo

Remarque : Nous aborderons ici le processus d'installation pour le système d'exploitation Windows uniquement.

Étape 2: Installez le serveur XAMPP sur votre système en suivant ces étapes.

Phppdo

Étape 3: Sélectionnez les composants que vous souhaitez installer et cliquez sur le bouton Suivant.

Phppdo

Étape 4: Créez le nouveau dossier avec le nom xampp à l'emplacement où vous souhaitez installer XAMPP.

Phppdo

Étape 5 : Cliquez sur Suivant ici et avancez. L'installation du serveur XAMPP commencera à partir d'ici.

Phppdo

Étape 6 : XAMPP est installé avec succès. Cliquez sur le bouton Terminer.

Phppdo

Étape 7 : Sélectionnez la langue préférée.

Phppdo

Étape 8 : Exécutez le serveur Apache et MySQL à partir d'ici (selon la capture d'écran donnée).

Phppdo

Étape 9 : Maintenant, ouvrez php.ini depuis C:/xampp/php/php.ini (où vous avez installé votre XAMPP) et décommentez l'extension 'php_pdo_mysql.dll' et 'php_pdo.dll' (si vous travaillez avec une base de données MySQL), ou 'php_pdo_oci.dll' (si vous travaillez avec la base de données Oracle). Maintenant, commencez à travailler avec la base de données. Dans la version supérieure de PHP 5.1, il est déjà défini.

Travailler avec PDO

Tout d’abord, nous devons créer une base de données, alors créez une base de données nommée myDB à partir d’ici.

Phppdo

Connexion à la base de données

Une connexion à la base de données est toujours requise pour interagir avec la base de données. Nous devons donc connaître l'identifiant pour accéder à la base de données, c'est-à-dire l'emplacement de la base de données, le nom de la base de données, le nom d'utilisateur et le mot de passe.

Maintenant, créez le programme de connexion à la base de données à l'aide de PDO dans n'importe quel éditeur de texte tel que notepad ou notepad++ et enregistrez-le sous le nom coonection.php. Exécutez-le sur le serveur XAMPP en utilisant localhost/80.

Exemple

 getMessage(); } ?> 

Sortir

Exécutez-le sur le serveur en utilisant l'URL suivante localhost/Xampp/pdoexample/connection.php/ ou où vous avez enregistré votre programme.

Phppdo

Gestion des erreurs de connexion

Un objet PDOException sera généré en cas d'erreur de connexion. Nous pouvons intercepter l'exception si nous voulons gérer la condition d'erreur, ou nous pouvons également la laisser au gestionnaire d'exception global qui peut être configuré par set_exception_handler() fonction.

Exemple

Dans cet exemple, dbUser(user-id) est erroné, il lèvera donc une exception, comme nous pouvons le voir dans le résultat.

chaîne un entier
 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?> 
Phppdo

Fermeture de la connexion à la base de données

 getMessage(); } // this command close the connection. $dbConn = null; ?> 

Sortir

Phppdo