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.
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.
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.
En Windows es más común instalar PHP con el instalador binario.
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.
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.