Foros del Web » Programando para Internet » PHP »

Warning: mysql_num_rows()

Estas en el tema de Warning: mysql_num_rows() en el foro de PHP en Foros del Web. Esto paso desde que actualizaron a PHP 5.3 y Tengo el siguiente error "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/paginaweb/lib/database/mysql.php ...
  #1 (permalink)  
Antiguo 05/11/2013, 00:00
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Mensaje Warning: mysql_num_rows()

Esto paso desde que actualizaron a PHP 5.3 y Tengo el siguiente error "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/paginaweb/lib/database/mysql.php on line 534" Alguien puede ayudarme porfavor. Gracias.

es un Shopping Cart de "interspire"
no puedo subir todo el codigo por que es muy largo y en esa linea esta esto.

Archivo "mysql.php"

Código PHP:
    function CountResult($resource=null)
    {
        if (
$resource === null) {
            
$this->SetError('Resource is a null object');
            return 
false;
        }
        if (!
is_resource($resource)) {
            
$resource $this->Query($resource);
        }
        
$count mysql_num_rows($resource);
        return 
$count;
    } 

Última edición por pilucho; 05/11/2013 a las 01:03 Razón: argumento
  #2 (permalink)  
Antiguo 05/11/2013, 01:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Warning: mysql_num_rows()

Cita:
Query
Es una función de tu biblioteca no sabemos que hace....

mysql_num_rows

Cita:
Recupera el número de filas de un conjunto de resultados. Este comando es únicamente válido para sentencias como SELECT o SHOW que retornan un conjunto de resultados real. Para recuperar el número de filas afectadas por una consulta INSERT, UPDATE, REPLACE o DELETE, use mysql_affected_rows().
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 05/11/2013, 02:26
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Warning: mysql_num_rows()

Lo que pasa que no permite los textos largos no pude copiar todo, asi que aqui dejo el link donde tambien habian posteado antes, y el problema se presento cuando se actualizo el hosting ENLACE
  #4 (permalink)  
Antiguo 05/11/2013, 03:00
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 11 años, 1 mes
Puntos: 43
Respuesta: Warning: mysql_num_rows()

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean

Le estas pasando un booleano, te debe estar devolviendo false porque hay un error en la consulta. Agregale un if que verifique que la consulta se haya ejecutado bien.

Código PHP:
Ver original
  1. if (!is_resource($resource)) {
  2.     if (!$resource = $this->Query($resource))
  3.     {
  4.         die("No me anda porque me tira este error: ".mysql_error());
  5.     }
  6. }
  #5 (permalink)  
Antiguo 05/11/2013, 03:04
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Warning: mysql_num_rows()

Cita:
Iniciado por Cuervoo Ver Mensaje
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean

Le estas pasando un booleano, te debe estar devolviendo false porque hay un error en la consulta. Agregale un if que verifique que la consulta se haya ejecutado bien.

Código PHP:
Ver original
  1. if (!is_resource($resource)) {
  2.     if (!$resource = $this->Query($resource))
  3.     {
  4.         die("No me anda porque me tira este error: ".mysql_error());
  5.     }
  6. }
Gracias por la respuesta.

le puse asi y me da el siguiente error
Código PHP:
Ver original
  1. function Fetch($resource=null)
  2.     {
  3.         if ($resource === null) {
  4.             $this->SetError('Resource is a null object');
  5.             return false;
  6.         }
  7. if (!is_resource($resource)) {
  8.     if (!$resource = $this->Query($resource))
  9.     {
  10.         die("No me anda porque me tira este error: ".mysql_error());
  11.     }
  12. }
  13.         else {
  14.             return mysql_fetch_assoc($resource);
  15.         }
  16.     }

Resultado "No me anda porque me tira este error: Unknown table engine 'InnoDB'"

Última edición por pilucho; 05/11/2013 a las 03:09 Razón: editar, respuesta
  #6 (permalink)  
Antiguo 05/11/2013, 03:10
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 11 años, 1 mes
Puntos: 43
Respuesta: Warning: mysql_num_rows()

Ahi mismo, ese if (!is_resource($resource)) { es el if que copiaste vos. Completo quedaria asi:

Código PHP:
Ver original
  1. function CountResult($resource=null)
  2. {
  3.     if ($resource === null) {
  4.         $this->SetError('Resource is a null object');
  5.         return false;
  6.     }
  7.     if (!is_resource($resource)) {
  8.         if (!$resource = $this->Query($resource))
  9.         {
  10.             die("No me anda porque me tira este error: ".mysql_error());
  11.         }
  12.     }
  13.     $count = mysql_num_rows($resource);
  14.     return $count;
  15. }
  #7 (permalink)  
Antiguo 05/11/2013, 03:14
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Warning: mysql_num_rows()

Cita:
Iniciado por Cuervoo Ver Mensaje
Ahi mismo, ese if (!is_resource($resource)) { es el if que copiaste vos. Completo quedaria asi:

Código PHP:
Ver original
  1. function CountResult($resource=null)
  2. {
  3.     if ($resource === null) {
  4.         $this->SetError('Resource is a null object');
  5.         return false;
  6.     }
  7.     if (!is_resource($resource)) {
  8.         if (!$resource = $this->Query($resource))
  9.         {
  10.             die("No me anda porque me tira este error: ".mysql_error());
  11.         }
  12.     }
  13.     $count = mysql_num_rows($resource);
  14.     return $count;
  15. }
Muy bien amigo ahora me arroja este error

No me anda porque me tira este error: Unknown table engine 'InnoDB'
  #8 (permalink)  
Antiguo 05/11/2013, 03:20
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 11 años, 1 mes
Puntos: 43
Respuesta: Warning: mysql_num_rows()

Eso es de mysql, fijate este link te da las dos posibles razones: http://systemadmin.es/2012/04/unknow...-engine-innodb
  #9 (permalink)  
Antiguo 05/11/2013, 04:49
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Warning: mysql_num_rows()

aun sigo en lo mismo gracias Cuervoo, alguien mas tiene alguna sugerencia,
  #10 (permalink)  
Antiguo 05/11/2013, 06:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Warning: mysql_num_rows()

El tema es más de MySQL que de PHP.
Ese tipo de problema se da con dos (2) sentencias, nada más:
- CREATE TABLE
- ALTER TABLE
Y sólo puede suceder si estás creando o modificando dinámicamente tablas (es decir, por script), lo que en BBDD se considera una pésima práctica.
En esencia la cosa es simple: El motor de tablas InnoDB no está habilitado en el servidor MySQL que estás usando, por lo que se infiere que el update no abarcó solamente al PHP... deben haber hecho algo más, o de lo contrario no tendrías ese inconveniente.
Normalmente, con MySQL 5.0.x o superior, el motor de tablas por default de MySQL es InnoDB, pero se puede confirgurar para qu esté desactivado.
Haz verificar eso, y veamos.

No puedo decirte más que eso porque no nos estás mostrando qué sentencias SQL estás ejecutando en esas funciones, y sin ver eso... no hay modo de andar adivinando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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 21:56.