L'extension mysqli a été introduite dans PHP 5.0.0. Le pilote natif MySQL (MySQL Native Driver) a été introduit dans PHP 5.3.0.
Les distributions Linux incluent des versions binaires de PHP qui peuvent être installées. Même si ces binaires sont construits avec les extensions MySQL activées, les bibliothèques clientes doivent souvent être installées au moyen d'un paquet additionnel. Voyez si c'est le cas pour votre distribution.
A moins que votre distribution Linux ne fournisse de paquet binaire pour PHP embarquant l'extension mysqli, vous allez devoir construire PHP depuis les sources. Cela permet de préciser les extensions MySQL à embarquer, mais aussi les bibliothèques clientes de chaque extension.
Le driver natif MySQL est l'option recommandé, vu qu'il apporte un gain de performance et donne l'accès à des fonctionnalités qui ne sont pas disponibles lors de l'utilisation de la bibliothèque cliente MySQL. Reportez-vous à la section Qu'est-ce que le driver natif MySQL de PHP ? pour une brève description des avantages du driver natif MySQL.
/path/to/mysql_config représente le chemin du programme mysql_config fourni avec MySQL serveur.
Version PHP | Défaut | Options de configuration : mysqlnd | Options de configuration : libmysqlclient | Historique |
---|---|---|---|---|
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Indisponible | --with-mysqli=/path/to/mysql_config | |
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd est maintenant supporté |
5.4.x | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd est maintenant par défaut |
Notez qu'il est possible de mixer les extensions MySQL ainsi que les bibliothèques clientes. Par exemple, il est possible d'activer l'extension MySQL pour utiliser la bibliothèque cliente MySQL (libmysqlclient) tout en configurant l'extension mysqli pour utiliser le driver natif MySQL. Toutes les combinaisons d'extensions et bibliothèques clientes sont possibles.
L'exemple suivant compile l'extension MySQL pour utiliser la bibliothèque cliente MySQL, et les extensions mysqli et PDO MYSQL pour utiliser le driver natif MySQL :
./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd [autres options]
Sur Windows, PHP est généralement installé avec un installeur binaire.
Une fois PHP installé, certaines configurations demanderont l'activation de mysqli et la précision de la bibliothèque cliente à utiliser avec.
L'extension mysqli n'est pas activée par défaut, donc la DLL php_mysqli.dll doit être activée dans php.ini. Pour cela, trouvez le fichier php.ini (souvent c:\php) et enlevez le caractère de commentaire (;) devant la ligne extension=php_mysqli.dll dans la section [PHP_MYSQLI].
Aussi, si vous voulez utiliser MySQL Client Library avec mysqli, vous devez vérifier que PHP a accès à ce fichier. La MySQL Client Library est incluse dans le fichier libmysql.dll de la distribution Windows de PHP. Ce fichier doit se trouver dans le PATH de Windows pour pouvoir être chargé sans problème. Voyez la FAQ intitulée "Comment puis-je ajouter mon dossier PHP au PATH de Windows" pour plus d'informations. Copier le fichier libmysql.dll dans le dossier système de Windows fonctionne aussi (souvent c:\Windows\system) car ce dossier est par défaut présent dans le PATH de Windows. Cependant, cette pratique est hautement découragée.
Pour activer une extension PHP (telle que php_mysqli.dll), la directive PHP extension_dir doit pointer vers le dossier contenant les extensions PHP. Voyez aussi Installation manuelle sous Windows . Par exemple, extension_dir pourrait valoir c:\php\ext.
Note:
Si lorsque vous démarrez le serveur web, une erreur telle que "Unable to load dynamic library './php_mysqli.dll'" se produit, c'est que php_mysqli.dll et/ou libmysql.dll ne peut être trouvée sur le système.
Sur Windows, pour PHP 5.3 ou supérieur, l'extension mysqli est activée par défaut et utilise MySQL Native Driver par défaut. Ceci signifie que vous n'avez pas à vous inquiéter au sujet de libmysql.dll.