Hola, les comparto esta clase para guardar en PostgreSql, puede guardar a cualquier base de datos, cualquier tabla, borrar y modificar. Aqui les dejo el código (conste en ese momento busque algo así y no lo encontré, fue hace 3 años).
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
?>
Un ejemplo sencillo del llamado es este programa:
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");
?>
Donde
conexiones.php es su archivo de conexion a la base de datos, cabe recalcar que este es un ejemplo muy sencillo, en las aplicaciones que he realizados implementando esta clase, un tips bien importante es manejar dos arreglos que pasan por parametros al programa gestor del guardado, borrado o modificacion, todos en uno solo, en esos arreglos van los valores y campos. No se si me explico, cualquier duda a la orden.
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.