Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2012, 13:16
Picher
 
Fecha de Ingreso: noviembre-2004
Ubicación: ELche
Mensajes: 153
Antigüedad: 20 años
Puntos: 0
Consulta msql_query siempre devuelve una resource

Hola Señores,

Tengo un problema de lo mas extraño, realizo una consulta a una base de datos MySQL, mediante mysql_query, el caso es que cuando coloco una consulta correcta todo va bien, se muestran los datos, pero si es incorrecta, mysql_query en vez de devolverme false, me devuelve una Resourse vacía, sin datos.

Os pongo el codigo,

$usuario = $_POST['User_txt'];
$pass = $_POST['Pass_txt'];
#Conectamos con MySQL
$conexion = mysql_connect("localhost","admin","admin")
or die ("Fallo en el establecimiento de la conexión");
#Seleccionamos la base de datos a utilizar
mysql_select_db("intranet")
or die("Error en la selección de la base de datos");
# realizamos la consulta
$consulta = "SELECT * FROM user WHERE Usuario='".$usuario."'";
$resultado= mysql_query ($consulta,$conexion);

ESTO LO REMARCO PARA QUE VEAIS QUE ME DEVUELVE CUANDO EL USUARIO SE
COLOCA A POSTA INCORRECTAMENTE
/////////////////////////////////////////////////////////////////////////////////////////////
///////// echo "mysql_query ha devuelto: " . $resultado; ///////
///////////////////////////////////////////////////////////////////////////////////////////

ESTE ECHO ME DEVULEVE mysql_query ha devuelto: Resource id #4

if (!$resultado) {
$mensaje = 'Consulta no válida: ' . mysql_error() . "\n";
$mensaje .= 'Consulta completa: ' . $consulta;
die($mensaje);
}
$fila = mysql_fetch_assoc($resultado);
echo "Usuario: " . $fila['Usuario'];
echo " Pass: ". $fila['Pass'];

COMO ES POSIBLE QUE ME DEVUELVA UNA RESOURCE VACÍA, SI EL USUARIO NO EXISTE, YA QUE ESA TABLA SOLO TIENE UN REGISTRO Y LO COLOCO ERRONEMAENTE A POSTA PARA QUE FALLE.

O es que mysql_query no devuelve siempre falso cuando la consulta no existe?.

Muchas gracias de antemano, y por favor si alquien sabe como solucionarlo o si hago algo mal, diganmelo porque no logro entender porque.