Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2014, 10:49
summerblack
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 12 años, 1 mes
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