Foros del Web » Programando para Internet » PHP »

poo php y pdo

Estas en el tema de poo php y pdo en el foro de PHP en Foros del Web. hola amigos el dia de hoytengo muchas dudas sobre pdo que aunque leo y leo encuentro muchas formas de hacer lo mismo, mas no encuentro ...
  #1 (permalink)  
Antiguo 03/03/2014, 10:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
poo php y pdo

hola amigos el dia de hoytengo muchas dudas sobre pdo que aunque leo y leo encuentro muchas formas de hacer lo mismo, mas no encuentro lo que necesito

resulta que estoy aprendiendo a realizar conexiones e inserts y update etc.. con PDO

Mi idea es hacer todo con POO esto con el fin de evitar muchos dolores de cabeza y sobre todo repetir mucho codigo
un archivo que contiene las variables de conexion

Código PHP:
Ver original
  1. <?php
  2.  
  3. define("DB_HOST", "localhost");
  4. define("DB_USER", "root");
  5. define("DB_PASS", "toor");
  6. define("DB_NAME", "bd");
  7. ?>

y luego lo importe en mi case estudiante en la cual estoy tratando de insertar valores, pero no veo el error

Código PHP:
Ver original
  1. <?php
  2.  require_once '../conexion/Conexion.php';
  3.  
  4.  
  5. class Estudiante
  6. {
  7.     private $id;
  8.     private $nombres;
  9.     private $email;
  10.     private $con;
  11.    
  12. private $host = DB_HOST;
  13. private $user = DB_USER;
  14. private $pass = DB_PASS;
  15. private $dbname = DB_NAME;
  16.    
  17.     const TABLA='estudiantes';
  18.    
  19.     //getters
  20.     public function getId()
  21.     {   return $this->id;   }
  22.    
  23.     public function getNombres()
  24.     {   return $this->nombres;  }
  25.    
  26.     public function getEmail()
  27.     {   return $this->email;    }
  28.    
  29.     //setters
  30.     public function setId($id)
  31.     {   $this->id = $id;    }
  32.    
  33.     public function setNombres($nombres)
  34.     {   $this->nombres = $nombres;  }
  35.    
  36.     public function setEmail($email)
  37.     {   $this->email = $email;  }
  38.    
  39.     //constructor
  40.     public function _construct($nombres,$email,$id)
  41.     {
  42.         $this->nombres=$nombres;
  43.         $this->email=$email;
  44.         $this->id=$id;
  45.     }
  46.    
  47.     //metodos
  48.     public function guardar()
  49.     {
  50.    
  51.    
  52.     try {
  53.     $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname. ';charset=utf8', $this->user, $this->pass);
  54.     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  55.     $query = "INSERT INTO ".self::TABLA." (dni_estudiante, nombres, email) VALUES ('$this->id','$this->nombres','$this->email') ";  
  56.     $stmt = $pdo->query($query);
  57.    
  58.     foreach($stmt as $row)
  59.     echo $row[0] . '<br/>';
  60.  
  61.     $pdo = null;
  62.         } catch (PDOException $e) {
  63.             print "¡Error!: " . $e->getMessage() . "<br/>";
  64.             die();
  65.         }      
  66.     }  
  67. }
  68.  
  69.  
  70. $estudiante = new Estudiante('1','2','3');
  71. $estudiante->guardar();
  72. echo $estudiante->getNombres();
  73.  
  74. ?>

el problema es que solo me esta insertando valores vacios..gracias a quien me pueda ayudar
  #2 (permalink)  
Antiguo 03/03/2014, 12:51
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: poo php y pdo

Prueba a poner echos o var_dump a las variables $this->id, etc, en el método guardar, para ver si tienen datos o no, así a simple vista no veo porque no debería ir, comprueba que tengan datos esas variables antes de enviar la consulta así estaremos más cerca del problema.

Un saludo
  #3 (permalink)  
Antiguo 03/03/2014, 13:33
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: poo php y pdo

var_dump dice nulll es como si no me estuviera leyendo las variables :(
  #4 (permalink)  
Antiguo 03/03/2014, 14:24
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: poo php y pdo

No te las lee porque no tienes una funcion constructor, por lo tanto no se guardan en los atributos, la función constructor tiene dos "__", no solo uno.
__construct()

Un saludo
  #5 (permalink)  
Antiguo 03/03/2014, 15:45
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: poo php y pdo

sii vale muchas gracias

Etiquetas: pdo, poo, sql, tabla, variable
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 12:01.