Choisir une API

PHP offre des APIs différentes pour se connecter à MySQL. Ci-dessous, vous trouverez les APIs fournies par les extensions mysqli et PDO. Chaque exemple de code crée une connexion à un serveur MySQL s'exécutant sur le domaine "example.com", en utilisant le nom d'utilisateur "user", le mot de passe "password". Et une requête est exécutée pour saluer l'utilisateur.

Exemple #1 Comparaison des APIs MySQL

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo
htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo
htmlentities($row['_message']);

Comparaison des fonctionnalités

La performance globale des deux extensions peut être considérée comme identique. Malgré tout, la performance de l'extension constitue seulement une fraction du temps total d'exécution d'une requête web PHP. Souvent, l'impact est inférieur à 0.1%.

  ext/mysqli PDO_MySQL
Introduite en PHP version 5.0 5.1
Inclus avec PHP 7.x et 8.x Oui Oui
Statut du développement Active Active
Cycle de vie Active Active
Recommandé pour de nouveaux projets Oui Oui
Interface orientée objet Oui Oui
Interface procédurale Oui Non
L'API supporte les requêtes non-bloquantes, asynchrones avec mysqlnd Oui Non
Connexions persistantes disponibles Oui Oui
L'API supporte les jeux de caractères Oui Oui
L'API supporte les requêtes préparées côté serveur Oui Oui
L'API supporte les requêtes préparées côté client Non Oui
L'API supporte les procédures stockées Oui Oui
L'API supporte les requêtes multiples Oui La plupart
L'API supporte les transactions Oui Oui
Les transactions peuvent être contrôlées avec SQL Oui Oui
Supporte toutes les fonctionnalités de MySQL 5.1+ Oui La plupart
add a note add a note

User Contributed Notes 2 notes

up
41
alvaro at demogracia dot com
12 years ago
Apart from the feature list, I suggest you try out both MySQLi and PDO and find out what API design you like most. MySQLi is more powerful and probably more complex to learn. PDO is more elegant and has the advantage that you only need to learn one PHP API if you need to work with different DBMS in the future.
up
10
rellect at gmail dot com
5 years ago
Another point to consider and one of the advantages of PDO is that it's not limited to mysql and supports other database engines such as PostgreSQL, SQLite, etc.
To Top