config.php
Código PHP:
<?php
$conf_db[1]["servidor"] = "127.0.0.1";
$conf_db[1]["usuario"] = "postgres";
$conf_db[1]["password"] = "123456";
$conf_db[1]["bbdd"] = "pruebas";
$conf_db[1]["port"] = "5432";
$conf_db[1]["typedb"] = "2";
$conf_db[2]["servidor"] = "127.0.0.1";
$conf_db[2]["usuario"] = "root";
$conf_db[2]["password"] = "123456";
$conf_db[2]["bbdd"] = "test";
$conf_db[2]["port"] = "3306";
$conf_db[2]["typedb"] = "1";
/*
Type DB: Motor de base de datos
1: Mysql
2: PostgreSQL
*/
?>
Código PHP:
<?php
class Postgresql
{
/////////////////////////
// PROPIEDADES PÚLICAS //
/////////////////////////
public $consulta;
//////////////////////////
// PROPIEDADES PRIVADAS //
//////////////////////////
private $testeando = true;
private $email_admin;
private $conexion;
private $selec_bbdd;
private $string_sucio;
private $string_limpio;
private $resultado;
function __construct ($servidor,$usuario,$password,$bbdd,$port)
{
// conecta a la bbdd
$this-> conexion = @pg_connect ("host=".$servidor." port=".$port." dbname=".$bbdd." user=".$usuario." password=".$password."") or die ($this-> err ());
}
//////////////////////
// MÉTODOS PRIVADOS //
//////////////////////
function err ()
{
if ($this-> testeando )
{
echo "<b><font color='red'>ERROR:</b> --> </b> Conexion a base de datos fallida</font>";
exit ();
}
else
{
echo "<b><font color='red'>Ha habido un error</font></b>";
if ($this-> email_admin )
{
echo ", el administrador ha sido informado por email";
mail ($this-> email_admin ,
"Error Postgresql en" .$_SERVER ['PHP_SELF'] ,
"Error-> " .pg_result_error ().
"\n en->" .$_SERVER ['PHP_SELF'].$_SERVER ['QUERY_STRING'].
"\n a las-> " .date ('H:i:s - D-d-m-Y'));
}
exit ();
}
}
//////////////////////
// MÉTODOS PÚBLICOS //
//////////////////////
function escapar_chars ()
{
// añade contrabarras a las palabras que lleven ' " \
$this-> string_limpio = addslashes ($this-> string_sucio );
return ($this-> string_limpio );
}
function desescapar_chars ()
{
// quita las contrabarras para mostrar el texto original con ' " \
$this-> string_limpio = stripslashes ($this-> string_sucio );
return ($this-> string_limpio );
}
function ejecutar($consulta)
{
$this-> resultado = @pg_exec ($this-> conexion,$consulta)or die("<i>Error En Consulta SQL:</i><br><span style='color:#FF0000; font-weight:bold;'>$consulta</span>");
$this-> consulta = $consulta;
//return ($this-> resultado);
return ($this-> consulta);
}
function num_filas ()
{
// devuelve el numero total de filas (horizontal) de la consulta
return pg_num_rows ($this-> resultado);
}
function num_columnas ()
{
// devuelve el numero total de columnas (vertical) de la consulta
return pg_num_fields ($this-> resultado);
}
function lista_objeto ()
{
// regresará las filas en el resultado como un objeto
return pg_fetch_object ($this-> resultado);
}
function lista_array ()
{
// regresará las filas en el resultado como un array
return pg_fetch_array ($this-> resultado);
}
function __destruct ()
{
// cierra la conexion existente
pg_close ($this-> conexion );
}
} // fin de la clase
?>
Código PHP:
<?php
class Mysql
{
/////////////////////////
// PROPIEDADES PÚLICAS //
/////////////////////////
public $consulta;
//////////////////////////
// PROPIEDADES PRIVADAS //
//////////////////////////
private $testeando = true;
private $email_admin;
private $conexion;
private $selec_bbdd;
private $string_sucio;
private $string_limpio;
private $resultado;
function __construct ($servidor,$usuario,$password,$bbdd,$port)
{
// conecta a la bbdd
$this-> conexion = @mysql_connect($servidor.":".$port, $usuario, $password) or $this-> err ();
$this-> selec_bbdd = @mysql_select_db ($bbdd, $this-> conexion) or $this-> err ();
}
//////////////////////
// MÉTODOS PRIVADOS //
//////////////////////
function err ()
{
if ($this-> testeando )
{
echo "<b><font color='red'>ERROR:</b> --> </b>" .
mysql_errno ()."</b> - <i>" .mysql_error ()."</i></font>";
exit ();
}
else
{
echo "<b><font color='red'>Ha habido un error</font></b>";
if ($this-> email_admin )
{
echo ", el administrador ha sido informado por email";
mail ($this-> email_admin ,
"Error mysql en" .$_SERVER ['PHP_SELF'] ,
"Error-> " .mysql_error ().
"\n en->" .$_SERVER ['PHP_SELF'].$_SERVER ['QUERY_STRING'].
"\n a las-> " .date ('H:i:s - D-d-m-Y'));
}
exit ();
}
}
//////////////////////
// MÉTODOS PÚBLICOS //
//////////////////////
function escapar_chars ()
{
// añade contrabarras a las palabras que lleven ' " \
$this-> string_limpio = addslashes ($this-> string_sucio );
return ($this-> string_limpio );
}
function desescapar_chars ()
{
// quita las contrabarras para mostrar el texto original con ' " \
$this-> string_limpio = stripslashes ($this-> string_sucio );
return ($this-> string_limpio );
}
function ejecutar($consulta)
{
// ejecuta consulta Mysql
//$this-> resultado = @mysql_query ($consulta , $this-> conexion ) or $this-> err ($this-> resultado ) or $this-> err ();
$this-> resultado = @mysql_query ($consulta , $this-> conexion ) or die("<i>Error En Consulta SQL:</i><br><span style='color:#FF0000; font-weight:bold;'>$consulta</span>");
$this-> consulta = $consulta;
//return ($this-> resultado);
return ($this-> consulta);
}
function num_filas ()
{
// devuelve el numero total de filas (horizontal) de la consulta
return mysql_num_rows ($this-> resultado);
}
function num_columnas ()
{
// devuelve el numero total de columnas (vertical) de la consulta
return mysql_num_fields ($this-> resultado);
}
function lista_objeto ()
{
// regresará las filas en el resultado como un objeto
return mysql_fetch_object ($this-> resultado);
}
function lista_array ()
{
// regresará las filas en el resultado como un array
return mysql_fetch_array ($this-> resultado);
}
function __destruct()
{
// cierra la conexion existente
mysql_close ($this-> conexion);
}
} // fin de la clase
?>
Código PHP:
<?php
require_once "class_postgres.php";
require_once "class_mysql.php";
class conexionDB{
function __construct(){
if (func_num_args()>1){
$nombreConex = func_get_arg(1);
}else{
$nombreConex = "db";
}
/* if (func_num_args()==7){
$servidor = func_get_arg(1);
$usuario = func_get_arg(2);
$password = func_get_arg(3);
$bbdd = func_get_arg(4);
$port = func_get_arg(5);
$typedb = func_get_arg(6);
}else{
require "config.php";
}*/
//////
require "config.php";
if (func_num_args()>=1){
$nconex = func_get_arg(0);
}else{
$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"];
/////
global $$nombreConex;
switch($typedb){
case "1":
$$nombreConex = new Mysql($servidor,$usuario,$password,$bbdd,$port);
break;
case "2":
$$nombreConex = new Postgresql($servidor,$usuario,$password,$bbdd,$port);
break;
}
}
}
?>
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Conexión a DB</title>
</head>
<body>
<?php
require_once "class_controlador.php";
new conexionDB();
$db -> ejecutar("SELECT * FROM tabla");
echo "<i>" . $db->consulta . "</i>";
echo "<p><strong>Con Ciclo While</strong><p>";
while ($fila = $db->lista_objeto()) {
echo $fila -> campo. "<br>";
}
echo "Numero de Filas: " . $db -> num_filas () . "<br>";
echo "Numero de Columnas: " . $db -> num_columnas () . "<br>";
unset($db);
echo "<h3>---------------------------------------------------------</h3>";
new conexionDB(2);
$db -> ejecutar("SELECT * FROM tabla");
echo "<i>" . $db->consulta . "</i>";
echo "<p><strong>Con Ciclo While</strong><p>";
while ($fila = $db->lista_objeto()) {
echo $fila ->campo. "<br>";
}
echo "Numero de Filas: " . $db -> num_filas () . "<br>";
echo "Numero de Columnas: " . $db -> num_columnas () . "<br>";
unset($db);
?>
</body>
</html>