Pregunta:
Fecha: 06-10-2015 23:18:57
(En Español)
Al realizar una división con el resultado me indica esto:
Object of class Usuario could not be converted to int in...
Al usar return var_dump($data); me indica que es un string:
object(PDOStatement)#3 (1) { ["queryString"]=> string(51) "SELECT count(*) FROM clients WHERE status_client= 1" }
Si cambio por $data->fetchColumn(); el error es el mismo
Gracias por su ayuda! Votos: 1 - Respuestas: 8 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
Objeto en PDO utilizando rowCount() no puede ser dividido [Resuelta]
Alguien sabe por qué no me funciona?$sql="SELECT count(*) FROM clients WHERE status_client= 1"; $data=$this->con->prepare($sql); $data->execute(); return $data->rowCount();
Al realizar una división con el resultado me indica esto:
Object of class Usuario could not be converted to int in...
Al usar return var_dump($data); me indica que es un string:
object(PDOStatement)#3 (1) { ["queryString"]=> string(51) "SELECT count(*) FROM clients WHERE status_client= 1" }
Si cambio por $data->fetchColumn(); el error es el mismo
Gracias por su ayuda! Votos: 1 - Respuestas: 8 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 06-10-2015 23:34:25 si haces un
var_dump ($data);
Que resultado te da? Votos: 1 - Link respuesta -
Fecha: 07-10-2015 03:14:49 Hola Oscar, rowCount devuelve el número de filas afectadas por la última sentencia SQL.
Sito de la documentación oficial:
Para muchas bases de datos, PDOStatement::rowCount() no devuelve el número de filas afectadas por una sentencia SELECT. En su lugar, use PDO::query() para ejecutar una sentencia SELECT COUNT(*) con las mismas declaraciones que la sentencia SELECT pretendida, luego use PDOStatement::fetchColumn() para recuperar el número de filas que serán devueltas. La aplicación podrá entonces realizar la acción correcta.
Fuente: http://php.net/manual/es/pdostatement.rowcount.php
En conclusión, deberías usar fetchColumn:
$sql="SELECT count(*) FROM clients WHERE status_client= 1"; $data=$this->con->prepare($sql); $data->execute(); return $data->fetchColumn();
Verifica el caso y luego nos cuentas.
Saludos, Votos: 4 - Link respuesta -
Fecha: 07-10-2015 09:23:21 Gracias por su ayuda pero aún no lo resuelvo. Walter Sanchez si realizo un var_dump obtengo un string como respuesta:
object(PDOStatement)#3 (1) { ["queryString"]=> string(51) "SELECT count(*) FROM clients WHERE status_client= 1" }
Fernando Mosquera si obtengo la cantidad de registros pero no puedo hacer operaciones porque me indica que es un string, si hago esto:
$nroProductos = new Usuario();
$nroProductos-> getUsuarios();
$total = $nroProductos/2;
echo $total;
Es cuando obtengo el error:
Object of class Usuario could not be converted to int in...
Busco y busco información, veo ejemplos y les resulta bien pero a mi siempre me indica que es un string. Votos: 0 - Link respuesta -
Fecha: 07-10-2015 10:09:59 Oscar, esto último código que estas comentando es distinto al primero, al margen de esto, fijate que el error que te esta dando es:
"Object of class Usuario could not be converted to int in..." <-- el objeto de la clase usuario no puede ser convertido a int (acá no te dice nada de String)
Lógicamente, no podes hacer $total = $nroProductos/2;, porque la variable "$nroProductos" no contiene un numero, sino un objeto.
Copio y pego tu código, y hago algunos comentarios:
$nroProductos = new Usuario(); //acá estas creando un objeto de la clase Usuario, y lo estas almacenando en la rariable $nroProductos, o sea, $nroProductos contiene un objeto Usuario $nroProductos->getUsuarios(); //acá estas invocando el método getUsuarios() del objeto Usuario almacenado en la variable $nroProductos, pero no estas resguardando ese resultado en ningun lado, lo que devuelve getUsuarios() se termina perdiendo. $total = $nroProductos/2; //acá estas intentando dividir el objeto Usuario por 2, cosa que no es posible, por lo que falla informando "Object of class Usuario could not be converted to int in..." echo $total; //esta línea no debería ejecutarse, porque fallo la división anterior.
Espero que estos comentarios te ayuden a entender donde esta el problema.
Podrías darnos mas detalle de lo que estas tratando de realizar para que podamos darte mayor detalle en la ayuda.
Saludos, Votos: 1 - Link respuesta -
Fecha: 07-10-2015 10:38:49 OK modificado y trabajando, tienes razón y te agradezco sólo estaba trabajando con el objeto y claro es un string de hecho me acabas de ayudar a entender algo que se me dificultaba. Gracias y quedó así:
$nroProductos = new Usuario();
$n=$nroProductos-> getUsuarios();
echo $n*2;
Pudiendo hacer operaciones ya con el resultado. Votos: 0 - Link respuesta -
Fecha: 07-10-2015 11:50:47 De nada Oscar, me alegra que hayas podido resolver el problema.
Saludos, Votos: 1 - Link respuesta -
-
Fecha: 07-10-2015 18:30:28 Oscar, por favor realiza una nueva pregunta para consultar por un libro, la actual pregunta no tiene relación con esto último.
Muchas gracias Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
