Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2015, 10:49
wesquer
 
Fecha de Ingreso: junio-2012
Mensajes: 31
Antigüedad: 11 años, 11 meses
Puntos: 0
consejos para conexion en php

Hola que tal quisiera saber cuales son los puntos que se toman en cuenta para realizar una conexión para base de datos según su opinión que pueda servir y amoldarse a todas las necesidades y les comparto mi código en PDO para conexiones haber en que se puede mejorar gracias.

esta es la clase de conexion
Código PHP:
<?php
class conexion{
    private 
$host   "";
    private 
$user   "";
    private 
$pass   "";
    private 
$base   "";
    private 
$conn   NULL;
    private 
$debug  true;
    function 
__construct($host=DB_HOST$base=DB_NAME$user=DB_USER$pass=DB_PASS) {
        
$this->host $host;
        
$this->base $base;
        
$this->user $user;
        
$this->pass $pass;        
        return 
$this->open();
    }
    private function 
error($message "") {
       
/* if ($this->debug) {
            if ($message != "") { echo($message->errorInfo()[2]);}
        }else{
            die("");
        }*/
    
}
    public function 
open() {
        if (!
is_resource($this->conn)){
            
$this->conn =new PDO('mysql:host='.$this->host.';dbname='.$this->base.''
                                  
$this->user
                                  
$this->pass,
                                  array(
PDO::ATTR_PERSISTENT => true,PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
        }
        return 
$this;
    }
    public function 
close() {
        if (
is_resource($this->conn)) {         
            
$this->conn NULL
        }       
    }
    public function 
status() {
        return ( 
$this->conn 'open''close' );
    }
    public function 
insert($sql="",$campos=NULL){
        if (!
is_resource($sql) or $sql!= "") {
            
$retorno="";
            
$conn=$this->conn;
            
$procesar=$conn->prepare($sql);
             try { 
                  
$conn->beginTransaction();
                  if(
$campos!=NULL){
                        if(
$procesar->execute($campos)){$retorno=$conn->lastInsertId();}
                        else{
$retorno=$this->error($procesar);}
                  }else{
                        if(
$procesar->execute()){$retorno=$conn->lastInsertId();}
                        else{
$retorno=$this->error($procesar);}
                  }
                  
$conn->commit();
                  return 
$retorno;
            }catch (
Exception $e) {
                  
$conn->rollBack();
                  return 
"Fallo: ".$conn->getMessage();
            }
        }else {
            return 
$this->error('ISQL Empty query');
        }
    }
    public function 
query($sql="",$campos=NULL) {
        if (
$sql != "") {
           
$conn=$this->conn;
           
$procesar=$conn->prepare($sql);
             try { 
                  
$conn->beginTransaction();
                  if(
$campos!=NULL){
                        if(
$procesar->execute($campos)){$retorno=$procesar;}
                        else{
$retorno=$this->error($procesar);}
                  }
                  else{
                        if(
$procesar->execute()){$retorno=$procesar;}
                        else{
$retorno=$this->error($procesar);}
                  }
                  
$conn->commit();
                  return 
$retorno;
            }catch (
Exception $e) {
                  
$conn->rollBack();
                  return 
"Fallo: " $e->getMessage();
            }
        } else {
            return 
$this->error('ISQL Empty query');
        }
    }
    public function 
mostrar($query="",$tipo=PDO::FETCH_ASSOC){
        
/*
            PDO::FETCH_OBJ
            PDO::FETCH_ASSOC
            PDO::FETCH_BOTH
            PDO::FETCH_LAZY
        */
        
if($query!=""){
            return 
$query->fetch($tipo);
        }else{
            return 
"No ingreso la consulta";
        }
    }
    public function 
liberar($query){
          
$query->closeCursor();
    }
    function 
__destruct() {
        
$this->close();
    }
}
//print_r(PDO::getAvailableDrivers());
?>
y acá ponemos los datos de la base de datos

Código PHP:
<?php
define
("DB_HOST""direccion del host");
define("DB_NAME""nombre de base de datos");
define("DB_USER""usuario");
define("DB_PASS""contraseña");
 
?>