PHPWales 2020 - June 3rd to June 4th

Installation

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.

Installation sur Linux

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, les bibliothèques clientes doivent souvent être installées au moyen d'un paquet additionnel. Voyez si c'est le cas pour votre distribution.

Par exemple, sur Ubuntu le package php5-mysql installe les extensions PHP ext/mysql, ext/mysqli, et pdo_mysqls. Sur CentOS, le package php-mysql installe aussi ces trois extensions PHP.

Alternativement, vous pouvez compiler cette extension vous-même. Construire PHP depuis les sources permet de préciser les extensions MySQL à embarquer, mais aussi les bibliothèques clientes de chaque extension.

Le driver natif MySQL est la bibliothèque client 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.

Matrice de support pour la compilation mysqli
Version PHP Défaut Options de configuration : mysqlnd Options de configuration : libmysqlclient Historique
5.4.x et ultérieur mysqlnd --with-mysqli --with-mysqli=/path/to/mysql_config mysqlnd par défaut
5.3.x libmysqlclient --with-mysqli=mysqlnd --with-mysqli=/path/to/mysql_config mysqlnd est supporté
5.0.x, 5.1.x, 5.2.x libmysqlclient Indisponible --with-mysqli=/path/to/mysql_config mysqlnd n'est pas supporté

Il est à noter qu'il est possible de mélanger 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.

Installation sur les systèmes Windows

Sur Windows, PHP est généralement installé avec un installeur binaire.

PHP 5.3.0 et plus récent

Sur Windows, pour les versions PHP 5.3 et 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.

PHP 5.0, 5.1, 5.2

Sur ces anciennes versions non supporté de PHP (PHP 5.2 a atteint sa fin de vie le '6 janvier 2011'), des procédures de configuration supplémentaires sont nécessaire pour activer mysqli et spécifier la bibliothèque client que vous voulez utiliser.

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.

add a note add a note

User Contributed Notes 5 notes

up
-12
bansi
7 months ago
In Windows 10 if mysqli is not working in PHP 7.3 you should add PHP directory to the PATH and restart your web server. This behavior was not there in PHP 7.0.27.
up
-24
Mark F
8 years ago
Just to note with regards to SSL and compression. MySQLnd and thus extensions using mysqlnd such as mysqli... now supports SSL and compression. Both have been supported inside mysqlnd since PHP 5.3.3 - http://www.php.net/manual/en/mysqlnd.overview.php
up
-30
David dot Kit dot Friedman at gmail dot com
10 years ago
>On Windows, PHP is most commonly installed using the binary installer. Once PHP has been installed, some >configuration is required to enable mysqli and specify the client library you want it to use.

Basically, if you want to add extensions you can double-click again on the installer file. The installer will find the already installed PHP and will ask if you want to change the installation.

When you go through the prompts it will take you back to the list of extensions and you can pick which extensions you want to add.

For the mysqli extension the installer also edited php.ini so that the extension was enabled:

[PHP_MYSQLI]
extension=php_mysqli.dll

the installer added those lines to the end of the file.
up
-43
josh dot ribakoff at gmail dot com
10 years ago
I kept getting configure errors:

/tmp/cc4f2PKd.o: In function `main':
/usr/src/php-5.3.0/configure:14287: undefined reference to `yp_get_default_domain'
collect2: ld returned 1 exit status
configure: failed program was:
#line 14270 "configure"
#include "confdefs.h"

The solution was to configure with mysql native driver as outlined on this page.
up
-48
Davinken
4 years ago
On CentOS 6 php-mysqli has been already incorporated into the php-mysql RPM package.
To Top