Clase BaseDatos esta va a ser llamada por nuestro programa que gestionará la operación correspondiente.
Código PHP:
<?php
/*
Programador: cesarpi80
programa: funciones.php
Managua - Nicaragua 2006
*/
class BaseDatos
{
var $sql2=" ";
var $sentencia;
var $tabla;
var $conexion;
//Conexion y tabla
function parametros($conexion,$tabla)
{
$this->conexion = $conexion;
$this->tabla = $tabla;
}
//Guardando los datos
function guardar()
{
$numargs = func_num_args();
for ($i = 0;$i < $numargs;$i++)
{
$arr1[$i] = func_get_arg($i);
}
$sentencia = "";
$i = count($arr1);
for ($j=0;$j<$i;$j++)
{
$sentencia .="'";
$sentencia .=$arr1[$j];
$sentencia .="'";
if ($j <> ($i-1)){
$sentencia .=",";}
}
if ($this->sql2 ==" ") {
$sql = "insert into $this->tabla values ($sentencia)";
} else {
$sql = "insert into $this->tabla ($this->sql2) values ($sentencia)";
}
$resultado = pg_query($this->conexion,$sql);
}
function Campos()
{
$numargs = func_num_args();
for ($i = 0;$i < $numargs;$i++)
{
$arr1[$i] = func_get_arg($i);
}
$sentencia = "";
$i = count($arr1);
for ($j=0;$j<$i;$j++)
{
$sentencia .=$arr1[$j];
if ($j <> ($i-1)){
$sentencia .=",";}
}
$this->sql2 = $sentencia;
}
//Borrar de la base de datos
function Borrar()
{
$numargs = func_num_args();
for ($i = 0;$i < $numargs;$i++)
{
$arr1[$i] = func_get_arg($i);
}
$sentencia = "";
$i = count($arr1);
for ($j=0;$j<$i;$j++)
{
if (($j % 2)==0) {
$sentencia .=$arr1[$j];
} else
{
$sentencia .=" = '";
$sentencia .=$arr1[$j];
$sentencia .="'";
if ($j <> ($i-1)){
$sentencia .=" and ";}
}
}
$sql = "delete from $this->tabla where $sentencia";
$resultado = pg_query($this->conexion,$sql);
}
function Criterio()
{
$numargs = func_num_args();
for ($i = 0;$i < $numargs;$i++)
{
$arr1[$i] = func_get_arg($i);
}
$sentencia = "";
$i = count($arr1);
for ($j=0;$j<$i;$j++)
{
if (($j % 2)==0) {
$sentencia .=$arr1[$j];
} else
{
$sentencia .=" = '";
$sentencia .=$arr1[$j];
$sentencia .="'";
if ($j <> ($i-1)){
$sentencia .=" and ";}
}
}
$this->sentencia = $sentencia;
}
function Actualizar()
{
$numargs = func_num_args();
for ($i = 0;$i < $numargs;$i++)
{
$arr1[$i] = func_get_arg($i);
}
$sentencia = "";
$i = count($arr1);
for ($j=0;$j<$i;$j++)
{
if (($j % 2)==0) {
$sentencia .=$arr1[$j];
} else
{
$sentencia .=" = '";
$sentencia .=$arr1[$j];
$sentencia .="'";
if ($j <> ($i-1)){
$sentencia .=",";}
}
}
$sql3 = "update $this->tabla set $sentencia where $this->sentencia";
echo $sql3;
$resultado = pg_query($this->conexion,$sql3);
}
} //Fin de la Clase
?> Código PHP:
<?php
include ("funciones.php");
include ("conexion.php");
$ruc = "694";
$apellido1 = "Morientes";
$apellido2 = "Owen";
//Conexion a la base de datos
$conexion = conectar();
//Creación del Objeto y de sus parametros
$base = new BaseDatos;
$base->parametros($conexion,"dgi_ruc_natural");
/*Guardar en campos específicos, si se va a guardar en unos cuantos campos
se manda a llamar Campos(campo1,campo2,...,campon),
donde se le pasa el nombre de los campos a accesar
Guardar(valor1,valor2,...,valor3)*/
$base->Campos("ruc","nombre_1apell","nombre_2apell");
$base->guardar($ruc,$apellido1,$apellido2);
/*
Si se va a Guardar directamente en todos los campos solo hacemos el llamado a guardar(campos);
*/
/*Borrar de la base de datos, parametros pasados, nombre del campo a buscar
Y el valor a buscar en la base de datos, pueden ser cuantos uno quiera.
Borrar(campo1,valor1,campo2,valor2,...,valorn,campon)*/
//$base->parametros($conexion,"dgi_ruc_juridica");
//$base->Borrar("ruc","230704902");
/*Actualizar en la base de datos Criterio(campo1,valor1,campo2,valor2, ... , campon,valorn)
* Actualizar(campo1,valor1,campo2,valor2, ... , campon,valorn)
*/
//$base->Criterio("ruc",$ruc);
//$base->Actualizar("nombre_nombre","Michael");
?> Y espero que les pueda servir de algo, como me ha servido a mi bastante.
PD: Para usarla en MySql solo se cambian las funciones pg por mysql.
creo que si quieres que sea realmente un buen aporte, deberías hacer todo en POO, ya que ahí estas mezclando programación estructurada con programación estilo OO.
antes sí tenía una clase para DB, pero ahora uso Zend_Db (

