Documentación GVHIDRA 3.1.5
Referencia de la Clase IgepPersistencia

Métodos públicos

 IgepPersistencia ($obj_conexion, $str_tabla)
 getTabla ()
 insertar ($m_datos)
 borrar ($v_filaDatos)
 actualizar ($v_filaDatos, $v_filaDatosAntiguos)

Campos de datos

 $str_tabla
 $obj_conexion
 $obj_errorBD

Descripción detallada

Definición en la línea 64 del archivo IgepPersistencia.php.


Documentación de las funciones miembro

actualizar ( v_filaDatos,
v_filaDatosAntiguos 
)

Dada una tupla o fila de la tabla realiza el UPDATE. Recibe dos parmetros; uno es la tupla con los nuevos datos y otro es la tupla con los datos que fueron visualizados.Esto se debe a que realiza una comprobacin de consistencia (se actuliza la tupla siempre y cuando alguien no la haya modificado). Los dos parmetros son arrays asociativos de la forma ["campo"]=>"valor".

public

Parámetros:
array$m_datos

Definición en la línea 220 del archivo IgepPersistencia.php.

                                                               {                
                $str_set = '';
                foreach($v_filaDatos as $prop => $val) {                                        
                        if($v_filaDatosAntiguos[$prop]!=$val){
                                if ($str_set!='')  
                                        $str_set.=' ,';
                                $str_set.=$prop;
                                if (gettype($val)=="string") { 
                                        if($val!="")
                                                $str_set.="='".$val."'";
                                        else
                                                $str_set.="= null";
                                }
                                else {                          
                                        if($val!="")
                                                $str_set.="=".$val;
                                        else
                                                $str_set.="= null";
                                }
                        }//Fin del if que comprueba si los datos son actualizados
                }//FIN foreach
                $str_condicion = '';                                                                                            
                foreach($v_filaDatosAntiguos as $prop => $val) {                                        
                        if ($str_condicion!='') 
                                $str_condicion.=' AND ';
                        $str_condicion.=$prop;
                        if (gettype($val)=='string') { 
                                if($val!='')
                                        $str_condicion.="='".$val."'";
                                else
                                        $str_condicion.=' is null';
                        }
                        else {                          
                                if($val!='')
                                        $str_condicion.='='.$val;
                                else
                                        $str_condicion.=' is null';
                        }
            }//FIN foreach                                                              
                // Ejecutamos la sentencia de Actualizacin
                if ($str_condicion!='' AND $str_set!='') {                                                                                                                                                                                              
                        $consulta = "UPDATE $this->str_tabla SET ".$str_set.' WHERE '.$str_condicion;      
                        //Debug:Indicamos que ejecutamos la consulta
                        IgepDebug::setDebug(DEBUG_IGEP,'IgepPersistencia: Actualizacin - '.$consulta);
                        $res =  $this->obj_conexion->exec($consulta);                           
                        if (PEAR::isError($res))                         
                                $this->obj_errorBD->setError('IGEP-3','IgepPersistencia.php','actualizar',$res, $consulta);
                        else {
                                //Comprobamos si existe error de concurrencia.
                                if ($res==0)                                            
                                        $this->obj_errorBD->setError('IGEP-4','IgepPersistencia.php','actualizar','','Error de Concurrencia: '.$consulta);                                                                                                                                      
                        }
                }//if de condicin no vacia                             
        }//FIN de actualizar
borrar ( v_filaDatos)

Dada una tupla o fila de la tabla realiza el DELETE. La tupla debe ser un array asociativo del modo ["campo"] =>"valor". Esta funcin recibe la fila a borrar porque realiza una comprobacin de consistencia (se borra la tupla siempre y cuando alguien no la haya modificado).

public

Parámetros:
array$v_filaDatos

Definición en la línea 172 del archivo IgepPersistencia.php.

    {           
                $str_condicion='';
        foreach($v_filaDatos as $prop => $val) {                        
                        if ($str_condicion!='') 
                                $str_condicion.=' AND '; 
                        $str_condicion.=$prop;
            if (gettype($val)=="string") { 
                if($val!="")
                    $str_condicion.="='".$val."'";
                else
                       $str_condicion.=" is null";
            }
            else { 
                if($val!="")    
                    $str_condicion.="=".$val;
                else
                       $str_condicion.=" is null";
            }           
        }//FIN foreach
        // Se monta la query con los datos obtenidos
        $consulta = "DELETE FROM ".$this->str_tabla. " WHERE " .$str_condicion;

        //Debug:Indicamos que ejecutamos la consulta
        IgepDebug::setDebug(DEBUG_IGEP,'IgepPersistencia: Borrado - '.$consulta);
    
        $res = $this->obj_conexion->exec($consulta);                                    
        if (PEAR::isError($res))                         
            $this->obj_errorBD->setError("IGEP-2",'IgepPersistencia.php',"borrar",$res,$consulta);
        else {
            //Comprobamos si existe error de concurrencia.
            if ($res==0)
                $this->obj_errorBD->setError('IGEP-4','IgepPersistencia.php','borrar','','Error de Concurrencia: '.$consulta);
                }       
    }// Fin de borrar
getTabla ( )

Retorna el nombre de la tabla a la que hace referencia.

public

Devuelve:
string

Definición en la línea 109 del archivo IgepPersistencia.php.

                            {
                return $this->str_tabla;
        }
IgepPersistencia ( obj_conexion,
str_tabla 
)

Constructor

public

Parámetros:
object$obj_conexion
string$str_tabla

Definición en la línea 95 del archivo IgepPersistencia.php.

                                                         {              
        //Instanciamos la clase
                global $g_error;
        $this->obj_errorBD =& $g_error; 
        $this->obj_conexion = $obj_conexion;            
        $this->str_tabla = $str_tabla;          
    }
insertar ( m_datos)

Dada una matriz asociativa de datos realiza los INSERTs en la tabla asociada al objeto.

public

Parámetros:
array$m_datosMatriz de vectores asociativos por nombres de columna / valor

Definición en la línea 120 del archivo IgepPersistencia.php.

        {
                $query = '';            
                $numFilas = count($m_datos);            
                if ($numFilas<1)//Si no hay datos... 
                {
                        IgepDebug::setDebug(DEBUG_IGEP, 'IgepPersistencia: Se ha intentado ejecutar INSERT con una matriz de datos vaca.');
                        return;
                }
                
                //Para cada dato
                $numInsercion = 0;
                foreach ($m_datos as $v_filaDatos)
                {
                $numInsercion++;
                        $query = 'INSERT INTO '.$this->str_tabla;
                $queryKeys =' (';
                $queryValues =' VALUES (';
                foreach ($v_filaDatos as $colName=>$value)
                {
                        $queryKeys.= $colName.', ';
                        if ( $value=='' || is_null($value) ) $queryValues.= 'null, ';
                        else $queryValues.= "'$value', ";
                }//Fin for columnas
                        $queryKeys = substr_replace ($queryKeys, ') ', -2, 2);
                        $queryValues = substr_replace ($queryValues, ') ', -2, 2);
                        $query .=$queryKeys.$queryValues;
                        
                        //Debug:Indicamos que ejecutamos la consulta
                        IgepDebug::setDebug(DEBUG_IGEP,"IgepPersistencia: Ejecutamos INSERT ($numInsercion de $numFilas)");

                        $res = $this->obj_conexion->exec($query);
                        //REVIEW: David - Utilizar MDB2::isError en lugar de MDB2::isError 
                        if (MDB2::isError($res))
                        {
                                //REVIEW: David - Utilizar las funciones $res->getMessage() y $res->getDebugInfo() en la llamada a setError  
                                $this->obj_errorBD->setError('IGEP-1', 'IgepPersistencia.php', "'Insertar ($numInsercion de $numFilas)", $res);
                                return;
                        }
        }//Fin for filas                
        }//Fin insertar

Documentación de los campos

$obj_conexion

Definición en la línea 78 del archivo IgepPersistencia.php.

$obj_errorBD

Definición en la línea 86 del archivo IgepPersistencia.php.

$str_tabla

Definición en la línea 71 del archivo IgepPersistencia.php.


La documentación para esta clase fue generada a partir del siguiente fichero: