Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/10/2009, 03:00
a77icu5
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 16 años, 4 meses
Puntos: 0
Mensaje Respuesta: insertar datos a una BD con una clase

Pues ya que andamos en los mismos temas, este es el metodo que puse en el driver de mysql que hice xD

Código PHP:
<?php
define
(SERVER,     'server');
define(USER,         'usuario');
define(PASSWORD,    'password');
define(DATABASE,    'baseDeDatos');

class 
Database
{    
    private 
$_con;
    private 
$_query;
    private 
$_values;
    private 
$_result;
    
    public function  
__construct() {
        
$this->_con    $this->connect();
        
$this->_query    ' ';
        
$this->_values    ' ';
    }
    
    public function 
connect() {
        
$this->_con mysql_connect(SERVERUSERPASSWORD);
        
mysql_select_db(DATABASE$this->_con);
        return 
$this->_con;
    }
    
    public function 
insert($table$values) {
        
$this->_query "insert into {$table} ("
                        
.implode(', 'array_keys($values))
                        .
') values(';
        foreach (
$values as $key => $value) {
            
$value $this->sanitize($value);
            if(
is_numeric($value)) {
                
$this->_query .= ', ' $value;
            } else {
                
$this->_query .= ", '"$value "'";
            }
        }
        
$this->_query str_replace('(,''('$this->_query);
        
$this->_query .=  ')';
        
$this->_execute();    
    }
    
    private function 
_execute() {
        return @
mysql_query($this->_query$this->_con);
    }
}
En la clase de uso mediante colaboracion de clases lo puedes implementar asi
Código PHP:
<?php
class Sample
{
    private 
$_db;
    
    public function 
__construct(){
        
$this->_db = new Database();
    }
    
    public function 
addUser($nickname$username$password) {
        
$data = array('user_nick' => $nickname
                
'user_name' => $username
                
'user_pass' => $password);        
        
$this->_db->insert('users'$data);
    }
}
O si te gusta implementar herencia entonces quedaria asi
Código PHP:
class Sample extends Database
{    
    public function 
__construct(){
        
parent::__construct();
    }
    
    public function 
addUser($nickname$username$password) {
        
$data = array('user_nick' => $nickname
                
'user_name' => $username
                
'user_pass' => $password);        
        
$this->insert('users'$data);
    }

Insert toma 2 parametros, el nombre de la tabla y un array asociativo para formar la query y la puedes usar como te guste, me falto copypastear el metodo "sanitize" que uso para quitar strings no permitidas en los inserts y todos los demas metodos usados para los CRUD pero la idea creo que la tenemos xD

Última edición por a77icu5; 28/10/2009 a las 03:10