Foros del Web » Programando para Internet » PHP »

UPDATE: siempre devuelve true en PDO ?

Estas en el tema de UPDATE: siempre devuelve true en PDO ? en el foro de PHP en Foros del Web. Hola a todos, estoy usando PDO para hacer unos UPDATES e INSERT y Lo hago de la siguiente forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 07/05/2013, 10:56
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
UPDATE: siempre devuelve true en PDO ?

Hola a todos, estoy usando PDO para hacer unos UPDATES e INSERT

y Lo hago de la siguiente forma:

Código PHP:
Ver original
  1. <?php
  2. $sql="update mi_tabla  set campo1='algo' , campo2='texto2' where  sigca_id_usu=?";
  3. $result = $db->prepare($sql);
  4. $result->execute(array($variable));
  5. if($result)
  6. echo "proceso correcto";
  7. else
  8. echo "error en el proceso";
  9. ?>

Pero asi el update tenga error, siempre entra y muestra el mensaje proceso correcto.. es como si la variable $result siempre devolviera true

Como puedo hacer para realmente validar si el update fue o no realizado ?

Agradezco me puedan dar alguna indicación
  #2 (permalink)  
Antiguo 07/05/2013, 11:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: UPDATE: siempre devuelve true en PDO ?

¿Ya leíste el manual?

¿Qué valores devuelve el método execute()?

http://php.net/manual/es/pdostatement.execute.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/05/2013, 11:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: UPDATE: siempre devuelve true en PDO ?

Lo que pasa es que estas comprobando el PDOStatement, no el valor que devuelve.

Saludos.
  #4 (permalink)  
Antiguo 07/05/2013, 15:16
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: UPDATE: siempre devuelve true en PDO ?

Si claro el manual muy claro lo dice:

Devuelve TRUE en caso de éxito o FALSE en caso de error.
GatorV, entonces el que deberia yo comprobar es el primer $result ?
  #5 (permalink)  
Antiguo 07/05/2013, 15:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: UPDATE: siempre devuelve true en PDO ?

Una cosa es que se ejecute la consulta y otra la cantidad de filas afectadas, ejemplo:

Código PHP:
Ver original
  1. if($result->execute(/* variables */)) {
  2.     // La consulta se ejecutó correctamente
  3.     echo $result->rowCount() . ' filas fueron afectadas.';
  4. } else {
  5.     // Error en la consulta
  6. }

rowCount()
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 07/05/2013, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: UPDATE: siempre devuelve true en PDO ?

No, deberías de comparar el resultado de tu función, no el objeto PDOStatement...

El objeto PDOStatement siempre va a evaluar a true, ya que es un objeto en memoria.
  #7 (permalink)  
Antiguo 07/05/2013, 15:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: UPDATE: siempre devuelve true en PDO ?

No, $result es el objeto, el valor que devuelve execute() no lo estás asignando ni comparando en ningún lado, ese es tu problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/05/2013, 15:51
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: UPDATE: siempre devuelve true en PDO ?

Muchas graciiassss por la ayuda, ya logre solucionar mi problema !!!

Etiquetas: devuelve, pdo, siempre, sql, tabla, true, update
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 15:05.