Funciones de MySQL
PHP Manual

mysql_query

(PHP 4, PHP 5)

mysql_queryEnviar una consulta MySQL

Advertencia

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y P+F relacionadas para más información. Las alternativas a esta función incluyen:

Descripción

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )

mysql_query() envía una única consulta (múltiples consultas no están soportadas) a la base de datos actualmente activa en el servidor asociado con el identificador de enlace especificado por link_identifier.

Parámetros

query

Una consulta SQL

La cadena de la consulta no debería terminar con un punto y coma. Los datos insertados en la consulta deberían estar correctamente escapados.

link_identifier

La conexión MySQL. Si el identificador de enlace no se especifica, el último enlace abierto por mysql_connect() es asumido. Si no se encuentra dicho enlace, la función intentará establecer un nuevo enlace como si mysql_connect() fuese invocado sin parámetros. Si no se encuentra o establece una conexión, un error de nivel E_WARNING es generado.

Valores devueltos

Para SELECT, SHOW, DESCRIBE, EXPLAIN y otras sentencias que retornan un conjunto de resultados, mysql_query() retorna un resource en caso de éxito, o FALSE en caso de error.

Para otros tipos de sentencias SQL, tales como INSERT, UPDATE, DELETE, DROP, etc, mysql_query() retorna TRUE en caso de éxito o FALSE en caso de error.

El conjunto de resultados devuelto debería ser pasado a mysql_fetch_array(), y otras funciones para manejar las tablas del resultado, para acceder a los datos retornados.

Use mysql_num_rows() para averiguar cuántas filas fueron retornadas por la sentencia SELECT, o mysql_affected_rows() para averiguar cuántas filas fueron afectadas por las sentencias DELETE, INSERT, REPLACE, o UPDATE.

mysql_query() también fallará y retornará FALSE si el usuario no está autorizado para acceder a la(s) tabla(s) referenciada(s) por la consulta.

Ejemplos

Ejemplo #1 Consulta inválida

La siguiente consulta es sintácticamente inválida, por lo que mysql_query() fallará y retornará FALSE.

<?php
$resultado 
mysql_query('SELECT * WHERE 1=1');
if (!
$resultado) {
    die(
'Consulta no válida: ' mysql_error());
}

?>

Ejemplo #2 Consulta válida

La siguiente consulta es válida, por lo que mysql_query() retornará un resource.

<?php
// Lo siguiente podría ser proporcionado por un usuario, como por ejemplo
$nombre 'fred';
$apellido  'fox';

// Formular la consulta
// Este es el mejor método para formular una consulta SQL
// Para más ejemplos, consulte mysql_real_escape_string()
$consulta sprintf("SELECT nombre, apellido, direccion, edad FROM amigos 
    WHERE nombre='%s' AND apellido='%s'"
,
    
mysql_real_escape_string($nombre),
    
mysql_real_escape_string($apellido));

// Ejecutar la consulta
$resultado mysql_query($consulta);

// Comprobar el resultado
// Lo siguiente muestra la consulta real enviada a MySQL, y el error ocurrido. Útil para depuración.
if (!$resultado) {
    
$mensaje  'Consulta no válida: ' mysql_error() . "\n";
    
$mensaje .= 'Consulta completa: ' $consulta;
    die(
$mensaje);
}

// Usar el resultado
// Si se intenta imprimir $resultado no será posible acceder a la información del recurso
// Se debe usar una de las funciones de resultados de mysql
// Consulte también mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($fila mysql_fetch_assoc($resultado)) {
    echo 
$fila['nombre'];
    echo 
$fila['apellido'];
    echo 
$fila['direccion'];
    echo 
$fila['edad'];
}

// Liberar los recursos asociados con el conjunto de resultados
// Esto se ejecutado automáticamente al finalizar el script.
mysql_free_result($resultado);
?>

Ver también


Funciones de MySQL
PHP Manual