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/mysqliPDO_MySQL
Introduite en PHP version5.05.1
Inclus avec PHP 7.x et 8.xOuiOui
Statut du développementActiveActive
Cycle de vieActiveActive
Recommandé pour de nouveaux projetsOuiOui
Interface orientée objetOuiOui
Interface procéduraleOuiNon
L'API supporte les requêtes non-bloquantes, asynchrones avec mysqlndOuiNon
Connexions persistantes disponiblesOuiOui
L'API supporte les jeux de caractèresOuiOui
L'API supporte les requêtes préparées côté serveurOuiOui
L'API supporte les requêtes préparées côté clientNonOui
L'API supporte les procédures stockéesOuiOui
L'API supporte les requêtes multiplesOuiLa plupart
L'API supporte les transactionsOuiOui
Les transactions peuvent être contrôlées avec SQLOuiOui
Supporte toutes les fonctionnalités de MySQL 5.1+OuiLa plupart
To Top