A partir de PHP 5.0, el soporte para MySQL no se habilita de forma predeterminada con la distribucione estándar de PHP. Esto significa que PHP debe ser explícitamente configurado para tomar ventaja de las extensiones de MySQL.
Las distribuciones más comunes de Unix incluyen versiones binarias de PHP que pueden ser instalados. Aunque estas versiones binarias son típicamente construidos con soporte para extensiones de MySQL habilitada, las bibliotecas de extensión puede ser necesario instalarlo utilizando un paquete adicional. Compruebe el gestor de paquetes que viene con su distribución elegida para disponibilidad.
Si su distribución de Unix no viene con un paquete binario de PHP con la extensión mysqli disponible, tendrá que compilar PHP desde código fuente. La compilación de PHP desde el código fuente le permite especificar las extensiones de MySQL que desea utilizar, así como la elección de la biblioteca cliente para cada extensión.
Para asegurarse que la extensión mysqli para PHP esta habilitada, necesitará configurar el código fuente de PHP para usar mysqli. Esto se logra ejecucutando el script configure con la opción --with-mysqli=mysql_config_path/mysql_config , antes de compilar PHP. Esto habilitará mysqli y se usará la biblioteca de cliente MySQL (libmysql) para comunicarse con el servidor MySQL.
Note:
mysql_config_path representa la ubicación del programa mysql_config que viene con el servidor MySQL.
Con las versiones de PHP 5.3 y posteriores, alternativamente puede usar el nuevo driver nativo de MySQL con mysqli. Esto da una serie de ventajas frente al uso libmysql.
Para usar el driver nativo de MySQL con mysqli necesita configurar el código fuente de PHP con la opción --with-mysqli=mysqlnd , antes de la compilación de PHP.
Esta es la opción recomendada, ya que utilizando el controlador nativo de MySQL resulta en un mejor rendimiento y permite el acceso a funciones que no están disponibles cuando se utiliza la biblioteca de cliente MySQL. Consulte ¿Qué es driver nativo de PHP para MySQL? para obtener una descripción breve de las ventajas de driver nativo de MySQL.
Tenga en cuenta que es posible mezclar libremente extensiones de MySQL y librerias cliente. Por ejemplo, es posible habilitar la extensión de MySQL para utilizar la biblioteca de cliente MySQL (libmysql), mientras que la configuración de la extensión mysqli para utilizar el controlador nativo de MySQL. Sin embargo, todas las permutaciones de la extensión y la biblioteca de cliente son posibles.
El siguiente ejemplo construye la extensión de MySQL para utilizar la biblioteca de cliente MySQL, y mysqli y la extensión PDO MYSQL para utilizar el controlador nativo de MySQL:
./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd [other options]
En Windows, PHP es más comúnmente instalado usando el instalador binario. Una vez que PHP se ha instalado, alguna configuración es necesaria para habilitar mysqli y especificar la biblioteca cliente que desee usar.
Como se mencionó anteriormente, la extensión mysqli no está habilitada por defecto, por lo que el archivo DLL php_mysqli.dll debe habilitarse al interior de php.ini. Para hacer esto usted necesita encontrar el archivo php.ini (normalmente se encuentra en c:\php), y asegúrese de eliminar el comentario (punto y coma) desde el inicio de la línea de extension=php_mysqli.dll, en la sección marcada como [PHP_MYSQLI].
Además, si desea utilizar la biblioteca de cliente MySQL con mysqli, debe asegurarse de que PHP puede acceder al archivo de la biblioteca de cliente. La biblioteca de cliente MySQL se incluye como un archivo de nombre libmysql.dll en la distribución de PHP en Windows. Este archivo 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.
En Windows, las versiones de PHP 5.3 y posteriores, la extensión mysqli utiliza el controlador nativo de MySQL por defecto. Esto significa que usted no necesita preocuparse por la configuración de libmysql.dll, sólo tiene que asegurarse de que la extensión está habilitada en el archivo php.ini.
Al igual que con cualquier otra extensión de PHP (como php_mysqli.dll), la directiva de PHP extension_dir se debe de 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.
Note:
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.