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.
Para la compilaci贸n, simplemente use la opci贸n de configuraci贸n --with-mysql[=DIR], en donde el valor opcional [DIR] apunta al 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.
La opci贸n --with-mysql est谩 habilitada por defecto. Para desactivar este comportamiento predeterminado, usted puede usar la opci贸n de configuraci贸n --without-mysql. Si se habilita MySQL sin especificar el directorio de instalaci贸n de MySQL, PHP usar谩 las bibliotecas de cliente de MySQL incorporadas.
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=/ruta/hacia/mysql. Esto obligar谩 a PHP a usar las bibliotecas de cliente instaladas por MySQL, para as铆 evitar cualquier conflicto.
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茅. Use la opci谩n de configuraci贸n --with-mysql[=DIR] para incluir el soporte para MySQL. Es posible descargar las cabeceras y bibliotecas desde MySQL.
La extensi贸n MySQL de PHP es compilada en PHP.
El soporte para MySQL ya no es habilitado por defecto, as铆 que el DLL php_mysql.dll DLL debe habilitarse al interior de php.ini. Asimismo, PHP necesita acceder a la biblioteca de cliente MySQL. Un archivo de nombre libmysql.dll es incluido en la distribuci贸n de PHP en Windows, y para que PHP se comunique con MySQL, este archivo necesita estar disponible en la ruta PATH de los sistemas Windows. Vea la entrada del FAQ titulada "C贸mo agrego mi directorio PHP a la ruta PATH en Windows" para m谩s informaci贸n sobre c贸mo hacerlo. Aunque copiar libmysql.dll al directorio de sistema de Windows tambi茅n funciona (ya que el directorio de sistema es parte del PATH del sistema por defecto), tal acci贸n no es recomendada.
Al igual que ocurre con cualquier otra extensi贸n (como php_mysql.dll), la directiva de PHP extension_dir debe definirse con el directorio en donde est谩n ubicadas las extensiones PHP. Vea tambi茅n las Instrucciones de Instalaci贸n Manual en Windows. Un valor de ejemplo 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_mysql.dll'", se debe a que php_mysql.dll o libmysql.dll no pueden encontrarse por el sistema.
| 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 | Cambios |
|---|---|---|---|
| mysql.allow_persistent | "1" | PHP_INI_SYSTEM | |
| mysql.max_persistent | "-1" | PHP_INI_SYSTEM | |
| mysql.max_links | "-1" | PHP_INI_SYSTEM | |
| mysql.trace_mode | "0" | PHP_INI_ALL | Disponible desde PHP 4.3.0. |
| mysql.default_port | NULL | PHP_INI_ALL | |
| mysql.default_socket | NULL | PHP_INI_ALL | Disponible desde PHP 4.0.1. |
| mysql.default_host | NULL | PHP_INI_ALL | |
| mysql.default_user | NULL | PHP_INI_ALL | |
| mysql.default_password | NULL | PHP_INI_ALL | |
| mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <= 4.3.2. Disponible desde PHP 4.3.0. |
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 SQL safe mode.
El nombre de usuario prodeterminado para conectarse al servidor de bases de datos si no se indica otro. No es aplicable bajo SQL safe mode.
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 SQL safe mode.
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. |
Nota: La mayor铆a de funciones de MySQL aceptan identificador_enlace como 煤ltimo par谩metro opcional. Si no es definido, se utiliza la 煤ltima conexi贸n abierta. Si no existe, se intenta establecer una conexi贸n con los par谩metros predeterminados definidos en php.ini. Si no tiene 茅xito, las funciones devuelven FALSE.
Este sencillo ejemplo muestra c贸mo conectarse, ejecutar una consulta, imprimir las filas resultantes y desconectarse de una base de datos MySQL.