Estas funciones le permiten acceder a servidores de bases de datos MySQL. Puede encontrar más información sobre MySQL en http://www.mysql.com/.
La documentación de MySQL puede encontrarse en http://dev.mysql.com/doc/.
Para contar con éstas funciones, debe compilar PHP con soporte MySQL.
Al usar la opción de configuración --with-mysql[=DIR], usted habilita a PHP para que acceda a bases de datos MySQL.
En PHP 4, la opción --with-mysql está habilitada por defecto. Para desactivar este comportamiento prestablecido, usted puede usar la opción de configuración --without-mysql. También, en PHP 4, si se habilita MySQL sin especificar el directorio de instalación de MySQL, PHP usará las bibliotecas de cliente de MySQL incorporadas. En Windows no existe DLL, simplemente es parte de PHP 4. Los usuarios que ejecutan otras aplicaciones que usan MySQL (auth-mysql, por ejemplo) no deberían usar la biblioteca incorporada, en su lugar deben especificar la ruta al directorio de instalación de MySQL, de este modo: --with-mysql=/path/to/mysql. Esto obligará a PHP a usar las bibliotecas de cliente instaladas por MySQL, para así evitar cualquier conflicto.
En PHP 5, el soporte para MySQL no se encuentra habilitado por defecto, ni lo está la biblioteca incorporada con PHP. Lea este FAQ para conocer los detalles del porqué. Debido a esto, los usuarios de Windows deben habilitar php_mysql.dll al interior de php.ini y copiar libmysql.dll en el directorio de sistema de Windows, o ponerlo al alcance de PATH. Para la compilación, simplemente use --with-mysql=[DIR] en donde [DIR] apunta a su directorio de instalación de MySQL.
Esta extensión de MySQL no soporta la funcionalidad completa de versiones de MySQL superiores a 4.1.0. Para ellas, use MySQLi.
Si quisiera instalar la extensión mysql junto con la extensión mysqli, debe usar la misma biblioteca de cliente para evitar cualquier conflicto.
Aviso |
Pueden encontrarse problemas de inicialización y bloqueos de PHP cuando esta extensión es cargada en conjunto con la extensión recode. Consulte sobre la extensión recode para más información. |
Nota: Si necesita juegos de caracteres diferentes a latin (el juego por defecto), tendrá que instalar una biblioteca de mysql externa (no incorporada) que haya sido compilada con soporte para los juegos de caracteres.
El comportamiento de estas funciones está afectado por los valores definidos en php.ini.
Tabla 1. Opciones de Configuración MySQL
Nombre | Por defecto | Modificable |
---|---|---|
mysql.allow_persistent | "On" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "Off" | PHP_INI_ALL |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "0" | PHP_INI_SYSTEM |
A continuación se presenta una corta explicación de las directivas de configuración.
Indica si se permiten conexiones persistentes con MySQL.
El número máximo de conexiones persistentes con MySQL por proceso.
El número máximo de conexiones con MySQL por proceso, incluyendo conexiones persistentes.
Modo de rastreo. Cuando se habilita mysql.trace_mode, se muestran advertencias para la apertura de tablas/índices, conjuntos de resultados no liberados, y errores SQL. (Se introdujo en PHP 4.3.0)
El número de puerto TCP predeterminado para usar cuando se conecta con el servidor de bases de datos, si no se indica otro. Si no se indica un valor predeterminado, el puerto se obtendrá de la variable de entorno MYSQL_TCP_PORT, la entrada mysql-tcp en /etc/services o la constante de tiempo de compilación MYSQL_PORT, en ese orden. En Win32 sólo se usa la constante MYSQL_PORT.
El nombre de socket predeterminado a ser usado cuando se realicen conexiones con un servidor de base de datos local, si no se indica algún otro.
La máquina anfitriona predeterminada a ser usada cuando se realicen conexiones con un servidor de bases de datos, si no se indica otro valor. No es aplicable en modo seguro.
El nombre de usuario prodeterminado para conectarse al servidor de bases de datos si no se indica otro. No es aplicable bajo modo seguro.
La contraseña predeterminada a usar cuando se realicen conexiones con el servidor de bases de datos, si no se indica otro valor. No es aplicable en modo seguro.
Tiempo de espera máximo de conexión, en segundos. Bajo Linux este tiempo de espera es usado también cuando se espera la primera respuesta del servidor.
Hay dos tipos de recursos usados en el módulo MySQL. El primero es el identificador de enlace para una conexión de base de datos, el segundo es un recurso que almacena el resultado de una consulta.
Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.
A partir de PHP 4.3.0, es posible especificar banderas de cliente adicionales para las funciones mysql_connect() y mysql_pconnect(). Las siguientes constantes están definidas:
Tabla 2. Constantes de cliente MySQL
Constante | Descripción |
---|---|
MYSQL_CLIENT_COMPRESS | Usar protocolo de compresión |
MYSQL_CLIENT_IGNORE_SPACE | Permitir espacios después de nombres de funciones |
MYSQL_CLIENT_INTERACTIVE | Permitir tantos segundos de inactividad como indique interactive_timeout (en lugar de wait_timeout) antes de cerrar la conexión |
MYSQL_CLIENT_SSL | Usar encripción SSL. Esta bandera se encuentra disponible únicamente con la versión 4.x o más reciente de la biblioteca cliente de MySQL. La versión 3.23.x se distribuye tanto con PHP 4 como con los binarios de Windows de PHP 5. |
La función mysql_fetch_array() usa una constante para los diferentes tipos de matrices de resultado. Las siguientes constantes están definidas:
Tabla 3. Constantes MySQL-fetch
Constante | Descripción |
---|---|
MYSQL_ASSOC | Las columnas son devueltas en la matriz usando el nombre del campo como índice. |
MYSQL_BOTH | Las columnas son devueltas en la matriz teniendo tanto un índice numérico como un índice correspondiente al nombre del campo. |
MYSQL_NUM | Las columnas son devueltas en la matriz teniendo un índice numérico a los campos. Este índice comienza en 0, el primer campo del resultado. |
Este sencillo ejemplo muestra cómo conectarse, ejecutar una consulta, imprimir las filas resultantes y desconectarse de una base de datos MySQL.