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");
?>