![]() |
Documentación GVHIDRA 3.1.5
|
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 |
Definición en la línea 64 del archivo IgepPersistencia.php.
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
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
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
Definición en la línea 109 del archivo IgepPersistencia.php.
{
return $this->str_tabla;
}
IgepPersistencia | ( | $ | obj_conexion, |
$ | str_tabla | ||
) |
Constructor
public
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
array | $m_datos | Matriz 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
$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.