Instalación

La extensión mysqli se introdujo en la versión 5.0.0 de PHP. El Controlador Nativo de MySQL se introdujo en la versión 5.3.0 de PHP.

Instalación en Linux

Las distribuciones comunes de Unix incluyen versiones binarias de PHP que se pueden instalar. Aunque estas versiones binarias son típicamente construidas con soporte para las extensiones de MySQL, podría ser necesario instarlar las bibliotecas de extensiones en sí utilizando un paquete adicional. Compruebe el gestor de paquetes que viene con la distribución elegida para su disponibilidad.

Por ejemplo, en Ubuntu el paquete php5-mysql instala las extensiones de PHP ext/mysql, ext/mysqli, y pdo_mysql. En CentOS, el paquete php-mysql también instala estas tres extensiones de PHP.

De forma alternativa, esta extensión la puede compilar uno mismo. Construir PHP desde la fuente permite especificar las extensiones de MySQL que se quieren usar, así como elegir la biblioteca cliente para cada extensión.

La opción de la biblioteca cliente recomendada es el Controlador Nativio de MySQL, ya que sus resultados mejoran el rendimiento y dan acceso a características no disponibles cuando se utiliza la Biblioteca Cliente de MySQL. Consúlte ¿Qué es el Controlador Nativo de MySQL para PHP?, que contiene un breve resumen de las ventajas del Controlador Nativo de MySQL.

ruta/a/mysql_config representa la ubicación del programa mysql_config que viene con el Servidor de MySQL.

Matriz de soporte en tiempo de compilación de mysqli
PHP Versión Por defecto Opciones de configuración: mysqlnd Opciones de configuración: libmysqlclient Historial de cambios
5.4.x mysqlnd --with-mysqli --with-mysqli=ruta/a/mysql_config mysqlnd ahora es el predeterminado
5.3.x libmysqlclient --with-mysqli=mysqlnd --with-mysqli=ruta/a/mysql_config mysqlnd tiene soporte
5.0.x, 5.1.x, 5.2.x libmysqlclient No Disponible --with-mysqli=ruta/a/mysql_config mysqlnd no tiene soporte

Observe que es posible mezclar libremente extensiones de MySQL y bibliotecas cliente. Por ejemplo, es posible habilitar la extensión de MySQL para que emplee la Biblioteca Cliente de MySQL (libmysqlclient), mientras se configura la extensión mysqli para que utilice el Controlador Nativo de MySQL. No obstante, son posibles todas las permutaciones de extensiones y bibliotecas cliente.

Instalación en sistemas Windows

En Windows es más común instalar PHP con el instalador binario.

PHP 5.3.0 y posterior

En Windows, con las versiones 5.3 o superiores de PHP, la extensión mysqli viene habilitada y utiliza por omisión el Controlador Nativo de MySQL, lo que significa que no es necesario configurar el acceso a libmysql.dll.

PHP 5.0, 5.1, 5.2

En estas versiones antiguas de PHP sin soporte (PHP 5.2 alcanzó su final de vida útil el 6 de enero de 2011), son necesarios procedimientos adicionales de configuración para habilitar mysqli y especificar la biblioteca cliente que se va a utilizar.

La extensión mysqli no está habilitada por defecto, por lo que la DLL php_mysqli.dll debe habilitarse en php.ini. Para esto, es necesario encontrar el fichero php.ini (normalmente se encuentra en c:\php), y asegurarse de eliminar el comentario (punto y coma) al inicio de la línea extension=php_mysqli.dll, en la sección marcada como [PHP_MYSQLI].

Además, para utilizar la biblioteca cliente de MySQL con mysqli, debe asegurarse de que PHP puede acceder al fichero de la biblioteca cliente. La biblioteca cliente MySQL se incluye como un fichero de nombre libmysql.dll en la distribución de PHP en Windows. Este fichero debe estar disponible en la variable de entorno de sistema de Windows PATH, de modo que puede ser cargado con éxito. Véase la FAQ titulada "Cómo agrego mi directorio PHP a la variable PATH en Windows" para obtener información sobre cómo hacer esto. Copiar libmysql.dll al directorio de sistema de Windows (normalmente C:\Windows\System) funciona, pues el directorio de sistema esta por defecto en el PATH del sistema. Sin embargo, esta práctica está totalmente desaconsejada.

Al igual que con cualquier otra extensión de PHP (como php_mysqli.dll), la directiva de PHP extension_dir se debe establecer en el directorio donde están ubicadas las extensiones de PHP. Consulte tambien el Manual de instalación de Windows. Un ejemplo de valor de extension_dir para PHP 5 es c:\php\ext.

Nota:

Si al iniciar el servidor web un error similar al siguiente ocurre: "Unable to load dynamic library './php_mysqli.dll'", esto es porque php_mysqli.dll y/o libmysql.dll no pudo ser encontrado por el sistema.

add a note add a note

User Contributed Notes 4 notes

up
-13
David dot Kit dot Friedman at gmail dot com
14 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
-19
Mark F
13 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
-27
bansi
5 years 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
-56
josh dot ribakoff at gmail dot com
14 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.
To Top