Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2009, 16:05
Avatar de cesarpi80
cesarpi80
 
Fecha de Ingreso: mayo-2009
Mensajes: 159
Antigüedad: 15 años, 6 meses
Puntos: 10
De acuerdo Les Comparto esta Clase para Guardar

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.
__________________
Tratando de aprender lo mas que se pueda !!!