Foros del Web » Programando para Internet » PHP »

mysql_num_rows():supplied argument is not valid

Estas en el tema de mysql_num_rows():supplied argument is not valid en el foro de PHP en Foros del Web. mysql_num_rows():supplied argument is not valid ¿¿¿que significa este error??? me sale en todo los ficheros en los que realiza esta funcion y no se que ...
  #1 (permalink)  
Antiguo 04/05/2004, 02:07
 
Fecha de Ingreso: abril-2004
Mensajes: 15
Antigüedad: 20 años
Puntos: 0
mysql_num_rows():supplied argument is not valid

mysql_num_rows():supplied argument is not valid
¿¿¿que significa este error??? me sale en todo los ficheros en los que realiza esta funcion y no se que hago mal
  #2 (permalink)  
Antiguo 04/05/2004, 02:09
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Traduccion literal: el parametro pasado no tiene un valor valido.

¿De donde sacas el parametro? Normalmente de un mysql_query(). Y si miras en www.php.net/mysql_query veras que la funcion devuelve un valor valido en caso de que vaya todo correcto, o false en caso de que se haya producido un error MySQL. ¿Y como puedes ver el mensaje de error de MySQL? Con la funcion mysql_error() (www.php.net/mysql_error).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/05/2004, 02:58
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Yo suelo hacer algo como esto:

$consulta = "select algo from tabla";
$q_consulta = mysql_query($consulta) or die ("La consulta: $consulta<br>Ha producido el error:".mysql_error());
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 04/05/2004, 03:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, Cain, ese es el codigo recomendado academicamente (yo mismo lo recomiendo para que aprendan el uso).

Pero en un entorno de produccion no es recomendable mostrar tanta informacion al "enemigo" al producirse el error. Estas mostrando tu estructura de BD, lo que puede ayudar para crear un SQL injection (meter datos que "rompan" tu BD).

La mejor opcion seria crear una funcion mysql_die() que dependiendo de una configuracion muestre la informacion o un un simple mensaje "Se produjo un error al procesar el formulario". O incluso usar trigger_error() (www.php.net/trigger_error) en lugar de die().

Pero primero hay que saber usar mysql_error(), por eso el codigo que has puesto es el que recomiendo para aprender.

Saludos.

PD: Cain, ¿infectado por el telendro virus?
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.