config.php
Código PHP:
<?php
$conf_db[1]["servidor"] = "127.0.0.1";
$conf_db[1]["usuario"] = "postgres";
$conf_db[1]["password"] = "1234";
$conf_db[1]["bbdd"] = "test";
$conf_db[1]["port"] = "5432";
$conf_db[1]["typedb"] = "1";
$conf_db[2]["servidor"] = "127.0.0.1";
$conf_db[2]["usuario"] = "root";
$conf_db[2]["password"] = "1234";
$conf_db[2]["bbdd"] = "mysql";
$conf_db[2]["port"] = "3306";
$conf_db[2]["typedb"] = "2";
/*
Type DB: Motor de base de datos
1: Mysql
2: PostgreSQL
*/
// Conexion por defecto
$nconex = "1";
$servidor = $conf_db[$nconex]["servidor"];
$usuario = $conf_db[$nconex]["usuario"];
$password = $conf_db[$nconex]["password"];
$bbdd = $conf_db[$nconex]["bbdd"];
$port = $conf_db[$nconex]["port"];
$typedb = $conf_db[$nconex]["typedb"];
?>
Código PHP:
<?php
class DB
{
# ATRIBUTOS
private $testeando = true;
private $email_admin;
private $conexion;
private $selec_bbdd;
private $string_sucio;
private $string_limpio;
private $resultado;
private $typedb;
private $consulta;
function __construct (){
$nroarg = func_num_args();
if($nroarg==0){
$this->typedb = 1;
}
if($nroarg==1){
$this->typedb = func_get_arg(0);
}
if($nroarg<=1){
require("config.php");
$servidor = $conf_db[$this->typedb]["servidor"];
$usuario = $conf_db[$this->typedb]["usuario"];
$password = $conf_db[$this->typedb]["password"];
$bbdd = $conf_db[$this->typedb]["bbdd"];
$port = $conf_db[$this->typedb]["port"];
$typedb = $conf_db[$this->typedb]["typedb"];
}else{
$servidor = func_get_arg(0);
$usuario = func_get_arg(1);
$password = func_get_arg(2);
$bbdd = func_get_arg(3);
$port = func_get_arg(4);
$typedb = func_get_arg(5);
$this->typedb = func_get_arg(5);
}
switch($this->typedb){
case 1:
$this-> conexion = @pg_connect ("host=".$servidor." port=".$port." dbname=".$bbdd." user=".$usuario." password=".$password."") or die ($this-> err ());
break;
case 2:
$this-> conexion = @mysql_connect($servidor.":".$port, $usuario, $password) or die ($this-> err ());
$this-> selec_bbdd = @mysql_select_db ($bbdd, $this-> conexion) or die ($this-> err ());
break;
}
}
private function err (){
if ($this-> testeando){
if(func_num_args()==0){
$tipo_error = 1;
}else{
$tipo_error = 2;
$consulta = func_get_arg(0);
}
switch($this->typedb){
case 1:
if($tipo_error==1){
$error = "Conexion a base de datos postgres fallida";
echo "<p><b><font color='red'>ERROR:</b> --> </b> $error</font></p>";
}elseif($tipo_error==2){
echo"<p><i>Error En Consulta SQL:</i><br><span style='color:#FF0000; font-weight:bold;'>$consulta<br>".pg_ErrorMessage($this-> conexion)."</span></p>";
}
break;
case 2:
if($tipo_error==1){
$error = mysql_errno()." - ".mysql_error();
echo "<p><b><font color='red'>ERROR:</b> --> </b> $error</font></p>";
}elseif($tipo_error==2){
$error = mysql_errno()." - ".mysql_error();
echo"<p><i>Error En Consulta SQL:</i><br><span style='color:#FF0000; font-weight:bold;'>$consulta<br>".$error."</span></p>";
}
break;
}
exit ();
}
else{
echo "<b><font color='red'>Ha Ocurrido un error</font></b>";
if ($this-> email_admin ){
echo ", Favor contacte a su adminstrador de sistemas";
}
exit ();
}
}
public function ejecutar($consulta){
switch($this->typedb){
case 1:
$this-> resultado = @pg_exec ($this-> conexion,$consulta)or die($this-> err ($consulta));
$this-> consulta = $consulta;
break;
case 2:
$this-> resultado = @mysql_query ($consulta , $this-> conexion ) or die($this-> err ($consulta));
$this-> consulta = $consulta;
break;
}
return ($this-> consulta);
}
public function num_filas (){
// devuelve el numero total de filas (horizontal) de la consulta
switch($this->typedb){
case 1:
$num_rows = pg_num_rows ($this-> resultado);
break;
case 2:
$num_rows = mysql_num_rows ($this-> resultado);
break;
}
return $num_rows;
}
public function num_columnas (){
// devuelve el numero total de columnas (vertical) de la consulta
switch($this->typedb){
case 1:
$num_fields = pg_num_fields ($this-> resultado);
break;
case 2:
$num_fields = mysql_num_fields ($this-> resultado);
break;
}
return $num_fields;
}
public function lista_objeto (){
// regresará las filas en el resultado como un objeto
switch($this->typedb){
case 1:
$fetch_object = pg_fetch_object ($this-> resultado);
break;
case 2:
$fetch_object = mysql_fetch_object ($this-> resultado);
break;
}
return $fetch_object;
}
public function lista_array (){
// regresará las filas en el resultado como un array
switch($this->typedb){
case 1:
$fetch_array = pg_fetch_array ($this-> resultado);
break;
case 2:
$fetch_array = mysql_fetch_array ($this-> resultado);
break;
}
return fetch_array;
}
public function lista_array_todas (){
// regresará TODAS las filas en el resultado como un array
switch($this->typedb){
case 1:
$fetch_all = pg_fetch_all ($this-> resultado);
break;
case 2:
$fetch_all = mysql_fetch_assoc ($this-> resultado);
break;
}
return $fetch_all;
}
function __destruct (){
}
function __toString(){
switch($this->typedb){
case 1:
return "Conexion a postgres";
break;
case 2:
return "Conexion a mysql";
break;
}
}
} // fin de la clase
?>
Código PHP:
require ("class_DB.php");
$db1=new DB(); # conexion a postgres configuracion por defecto archivo config.php
$db2=new DB(2); # conexion a mysql configuracion archivo config.php toma el numero de conex
$db3=new DB("127.0.0.1","root","1234","test","3306","2"); # conexion a mysql
$db4=new DB("127.0.0.1","postgres","1234","test","5432","1"); # conexion a postgres