Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

No me funciona rowCount() pdo

Estas en el tema de No me funciona rowCount() pdo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. buenas , tengo el siguiente code pero no me quiero funcionar la funcion de PDO para contar los row . Código PHP:      $link  = new  PDO ...
  #1 (permalink)  
Antiguo 07/07/2011, 11:45
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
No me funciona rowCount() pdo

buenas , tengo el siguiente code pero no me quiero funcionar la funcion de PDO para contar los row .


Código PHP:

     $link 
= new PDO($dns,$user$password);
     
$mail=$_POST['mail'];
     
$link->quote($mail);
     
$sql="SELECT idusers WHERE mail='".$mail."'";
     
$resulset=$link->query($sql);
     if(
$resulset->rowCount()!=0){
      
         echo 
'Gracias por esperar.';
         
     }else{


     } 
me sale lo siguiente.


Call to a member function rowCount()


saludos
  #2 (permalink)  
Antiguo 07/07/2011, 12:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: No me funciona rowCount() pdo

Evidentemente no tenes nada en $resulset

O sea.. el problema lo tenes en $link->query($sql); bien porque eso este mal...o porque esa consulta devuelve 0 registros
__________________
Salu2!
  #3 (permalink)  
Antiguo 07/07/2011, 12:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No me funciona rowCount() pdo

De acuerdo al manual, rowCount() no es garantizado. Lo mejor es hacer un SELECT con COUNT() para contar las filas que quieres.
  #4 (permalink)  
Antiguo 07/07/2011, 13:08
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: No me funciona rowCount() pdo

Muchas gracias por la respuesta, cuando utilizo el rowCount la mayoria de veces es para verificar si hay datos que procesar y si no devolver error. en este caso me recomiendas el count con mysql o con php?


saludos
  #5 (permalink)  
Antiguo 07/07/2011, 14:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No me funciona rowCount() pdo

El Manual dice que siempre es mejor usar COUNT(), aparte de que es más rapido que contar todo el resultset.

Saludos.
  #6 (permalink)  
Antiguo 08/07/2011, 13:45
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: No me funciona rowCount() pdo

Entonces deberia hacer lo siguiente?

SELECT count(*) FROM tabla where ...

if($result!=0){

SELECT columnas FROM tabla where ...

}else{

haga otra cosa--

}


saludos
  #7 (permalink)  
Antiguo 08/07/2011, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No me funciona rowCount() pdo

Es lo más adecuado, ya que como dice rowCount no regresa todas las veces el número total de rows.

Saludos.
  #8 (permalink)  
Antiguo 08/07/2011, 14:11
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: No me funciona rowCount() pdo

Ok no lo hice al principio porque crei que era una solucion poco elegante jeje y que afectaria algo el performace o algo asi, pero si tu lo dices entonces es lo más adecuado. Xd


saludos
  #9 (permalink)  
Antiguo 08/07/2011, 14:50
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: No me funciona rowCount() pdo

SELECT count(*) as cant FROM tabla where ..

Eso te devolveriA en cant el numero de registros
__________________
Salu2!

Etiquetas: pdo
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 01:16.