Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Estas en el tema de PDO INSERT/UPDATE no hacen nada y no devuelven ningún error en el foro de PHP en Foros del Web. INSERT/UPDATE reciben los parametros pero no hacen nada SELECT/DELETE funcionan corectamente Código PHP: <?php      class  noticiasModel  extends  Model  {         public function  __construct () {              parent ...
  #1 (permalink)  
Antiguo 03/06/2014, 10:10
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

INSERT/UPDATE reciben los parametros pero no hacen nada

SELECT/DELETE funcionan corectamente

Código PHP:
<?php
    
class noticiasModel extends Model {
        public function 
__construct() {
            
parent::__construct();
        }

        public function 
getFilas() {
            return 
$this->_db->query(
                
"SELECT * FROM noticias"
            
)->fetchAll();
        }

        public function 
getFila($id) {
            
$id = (int) $id;
            return 
$fila $this->_db->query(
                
"SELECT * FROM noticias WHERE id = $id"
            
)->fetch();
        }

        public function 
crearFila($titulo$cuerpo) {
            
$this->_db->prepare("INSERT INTO noticias VALUES (null, :titulo, :cuerpo)")->execute(
                array(
                    
':titulo' => $titulo,
                    
':cuerpo' => $cuerpo
                
)
            );
        }

        public function 
editarFila($id) {
            exit(
$id);
            
$id = (int) $id;
            
$this->_db->prepare(
                
"UPDATE noticias SET titulo = :titulo, cuerpo = :cuerpo WHERE id = :id"
            
)->execute(
                array(
                    
':id' => $id,
                    
':titulo' => $titulo,
                    
':cuerpo' => $cuerpo
                
)
            );
        }

        public function 
borrarFila($id) {
            
$id = (int) $id;
            
$this->_db->query("DELETE FROM noticias WHERE id = $id");
        }
    }
?>
  #2 (permalink)  
Antiguo 03/06/2014, 11:12
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: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

OFF TOPIC en MySQL.

Movido a PHP
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/06/2014, 14:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Cita:
INSERT/UPDATE reciben los parametros pero no hacen nada
¿Y tenemos que ejecutar el código mentalmente para saber lo que sucede? :pensando;

Vamos, que es tu obligación depurar tus consultas y verificar por la presencia de un error, no esperes a que te salte por la pantalla.

Igual podrías ir depurando lo que hace tu código, nosotros no podemos adivinar.

También veo claramente un exit(), me imagino sabrás lo que hace.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 03/06/2014, 15:15
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Editar ya funciona, solo me falta averiguar por que no funciona INSERT

ese exit lo puse para probar si recibía ese 'id'

Algo voy sabiendo, ejemplo
Código PHP:
if (consulta){
echo 
"este mensaje se muestra";
exit(
'no se ejecuta mas código en este nivel');
echo 
"este mensaje no se muestra";
}
echo 
"este mensaje se muestra"
Discúlpame, veamos...

me centrare en este método

Código PHP:
        public function crearFila($titulo$cuerpo) {
echo 
$titulo .' - '.$cuerpo;/*VERIFICO QUE SE RECIBAN LOS DOS PARÁMETROS*/
            
$this->_db->prepare(
                
"INSERT INTO noticias VALUES (null, :titulo, :cuerpo)"
                
)->execute(
                array(
                    
':titulo' => $titulo,
                    
':cuerpo' => $cuerpo
                
)
            );
        } 
ese insert no hace nada, pero si me paso por phpmyadmin y pego la consulta esta se agrega

Código:
INSERT INTO noticias (titulo, cuerpo) VALUES ('titulo', 'cuerpo');
Estoy seguro que algo se me escapa en esta consulta de PDO, pero por ahora no alcanzo a resolverlo

en unos ejemplos que hiciera anteriormente funcionaba bien, pero al hacerlo de nuevo para repasar en un nuevo proyecto es cuando me doy cuenta que algo estraño esta pasando

Última edición por quico5; 03/06/2014 a las 16:36
  #5 (permalink)  
Antiguo 03/06/2014, 16:44
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Veamos...
editarFila OK
crearFila KO

seguro que va a ser una tontería, ains, es una pesadilla, no le veo fallo al INSERT

Código PHP:
        public function crearFila($titulo$cuerpo) {exit($titulo.' '.$cuerpo); /*VERIFICACION de RECEPCION*/

            
$this->_db->prepare(
                
"INSERT INTO noticias VALUES (null, :titulo, :cuerpo)"
                
)->execute(
                array(
                    
':titulo' => $titulo,
                    
':cuerpo' => $cuerpo
                
)
            );
        }

        public function 
editarFila($id$titulo$cuerpo) {
            
$id = (int) $id;
            
$this->_db->prepare(
                
"UPDATE noticias SET titulo = :titulo, cuerpo = :cuerpo WHERE id = :id"
            
)->execute(
                array(
                    
':id' => $id,
                    
':titulo' => $titulo,
                    
':cuerpo' => $cuerpo
                
)
            );
        } 
  #6 (permalink)  
Antiguo 03/06/2014, 17:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Pues mientras sigas sin indagar por algún error no verás anda por arte de magia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 03/06/2014, 17:31
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

ya encontré el problema, en la tabla noticias tenia los campos en nulo y al mandar campos de menos la inclusión no se realizaba
  #8 (permalink)  
Antiguo 03/06/2014, 18:22
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: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

O sea, no era error de base de datos, ni de PHP, sino datos sucios...
Suele pasar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 03/06/2014, 19:32
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Quizas sea buena idea que hagas como Doctrine y que proveas para tu sistema una forma de sincronizacion de tu Modelo con tu DDBB .. o al menos algo que cheeque este tipo de inconcistencias, no es dificil lograrlo.
__________________
Salu2!
  #10 (permalink)  
Antiguo 04/06/2014, 04:52
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

Hola @Italico76, gracias por tu sugerencia, investigare sobre Doctrine

he encontrado este hilo, en el cual utilizan el mismo framework que yo mediante PDO
http://www.forosdelweb.com/f68/empez...-2-1-a-983232/
  #11 (permalink)  
Antiguo 04/06/2014, 07:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: PDO INSERT/UPDATE no hacen nada y no devuelven ningún error

DBAL de Doctrine usa PDO: http://docs.doctrine-project.org/pro...roduction.html
Y cuenta con características adicionales que puede ver en el manual:http://docs.doctrine-project.org/pro...bal/en/latest/

La documentación para el ORM: http://docs.doctrine-project.org/pro...orm/en/latest/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: mysql, nada, null, pdo, select
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 20:20.