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é.
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.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 |
Para más detalles sobre las constantes PHP_INI_* y sus
definiciones, vea
ini_set().
A continuación se
presenta una corta explicación de las directivas de
configuración.
- mysql.allow_persistent
boolean
Indica si se permiten conexiones
persistentes con MySQL.
- mysql.max_persistent
integer
El número máximo de conexiones persistentes con MySQL
por proceso.
- mysql.max_links
integer
El número máximo de conexiones con MySQL por proceso,
incluyendo conexiones persistentes.
- mysql.default_port
string
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.
- mysql.default_socket
string
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.
- mysql.default_host
string
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.
- mysql.default_user
string
El nombre de usuario prodeterminado para conectarse al servidor de
bases de datos si no se indica otro. No es aplicable bajo modo seguro.
- mysql.default_password
string
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.
- mysql.connect_timeout
integer
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 |
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.
Ejemplo 1. Ejemplo general de la extensión MySQL
<?php /* Conexion, seleccion de base de datos */ $enlace = mysql_connect("host_mysql", "usuario_mysql", "contrasenya_mysql") or die("No pudo conectarse : " . mysql_error()); echo "Conexión exitosa"; mysql_select_db("mi_base_de_datos") or die("No pudo seleccionarse la BD.");
/* Realizar una consulta SQL */ $consulta = "SELECT * FROM mi_tabla"; $resultado = mysql_query($consulta) or die("La consulta falló: " . mysql_error());
/* Impresion de resultados en HTML */ echo "<table>\n"; while ($linea = mysql_fetch_array($resultado, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($linea as $valor_col) { echo "\t\t<td>$valor_col</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n";
/* Liberar conjunto de resultados */ mysql_free_result($resultado);
/* Cerrar la conexion */ mysql_close($enlace); ?>
|
|