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 :
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.
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.
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.
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 :
Classes AOP
Il existe trois classes PDO, indiquées ci-dessous :
Bases de données prises en charge par PDO
- MySQL
- PostgreSQL
- Oracle
- Oiseau de feu
- Serveur MS SQL
- Sybase
- Informix
- IBM
- TDS gratuit
- SQLite
- Cubride
- 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.
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.
Étape 3: Sélectionnez les composants que vous souhaitez installer et cliquez sur le bouton Suivant.
Étape 4: Créez le nouveau dossier avec le nom xampp à l'emplacement où vous souhaitez installer XAMPP.
Étape 5 : Cliquez sur Suivant ici et avancez. L'installation du serveur XAMPP commencera à partir d'ici.
Étape 6 : XAMPP est installé avec succès. Cliquez sur le bouton Terminer.
Étape 7 : Sélectionnez la langue préférée.
Étape 8 : Exécutez le serveur Apache et MySQL à partir d'ici (selon la capture d'écran donnée).
É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.
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.
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(); } ?>
Fermeture de la connexion à la base de données
getMessage(); } // this command close the connection. $dbConn = null; ?>
Sortir