Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2012, 10:09
Agrey
 
Fecha de Ingreso: octubre-2003
Mensajes: 364
Antigüedad: 20 años, 6 meses
Puntos: 1
Mi primer código POO - Dudas

Aupa,
He empezado a meterme con la POO y después de leer manuales he realizado mi primer código que lo "único" que hace es listar la tabla de usuarios y me han surgido las primeras dudas.

He creado dos clases. La primera conexión que hace la conexion, ejecutar, limpiar y cierra.
Código PHP:
class conexion
{
  private 
$servidor;
  private 
$usuario;
  private 
$password;
  private 
$bd;
  private 
$database;
  
  public function 
__construct($servidor"localhost"$usuario "root"$password =   ""$bd "abm")
  {
      
$this->servidor=$servidor;
      
$this->usuario=$usuario;
      
$this->password=$password;
      
$this->bd=$bd;
      
$this->database = new mysqli($servidor$usuario$password$bd);
      if (
$this->database->connect_error) {
          die(
"Error (" $this->database->connect_errno ") "$this->database->connect_error);
      }
  }
  
  public function 
ejecutar($sql// ejecuta consulta
  
{
      return 
mysqli_query($this->database,$sql);        
  }    
  public function 
limpiar() // libera la consulta
  
{
      
mysql_free_result($this->database);
  }
  public function 
cerrar() // cierra la conexion
  
{
      
$this->database->Close();
  }            

La segunda usuario hereda de la primera y lista los usuarios
Código PHP:
class usuario extends conexion
{
  public function 
__construct()
  {
    
parent::__construct();    
  }
  
  public function 
listar()
  {
    
$sql="select * from clientes";
    
$result=parent::ejecutar($sql);
    return 
$result;
    
parent::limpiar();
  }  

Y donde se crea las clases:
Código PHP:
$cliente=new usuario();
$result=$cliente->listar();
  if(
$result) {
      echo 
$result->num_rows."<br />";
      if (
$result->num_rows!=0)
      {
          while (
$rowCam $result->fetch_row())
          {
              echo 
$rowCam[1]."<br />";
          }
      }
  }
  else
      echo 
"Error SQL";    
$cliente->cerrar(); 
¿Veís todo bien? Los resultados si los muestra pero no sé si lo he hecho de la mejor forma.

Y una duda que me ha surgido. Si creo en esta misma página otra clase que hereda de conexion se me abriria dos conexiones en la misma página (la nueva y la de usuario). Es mejor tener la clases que no hereden de conexion o como es la forma más obtima de hacerlo.

Muchas gracias de antemano