*
{$query}
");
try {
$res = $this->obj_conexion->exec($query);
}
catch (Exception $e) {
//Excepciones PDO
$this->obj_errorBD->setError('IGEP-1', 'IgepPersistencia.php', "'Insertar ($numInsercion de $numFilas)", $e->getMessage());
return;
}
//Tratamiento de errores
if ((!$this->is_pdo AND PEAR::isError($res)) OR ($this->is_pdo AND $res===FALSE)) {
$this->obj_errorBD->setError('IGEP-1', 'IgepPersistencia.php', "'Insertar ($numInsercion de $numFilas)", $res);
return;
}
}//Fin for filas
}//Fin insertar
/**
* Dada una tupla o fila de la tabla realiza el DELETE. La
* tupla debe ser un array asociativo del modo ["campo"]
* =>"valor". Esta función recibe la fila a borrar porque
* realiza una comprobación de consistencia (se borra la
* tupla siempre y cuando alguien no la haya modificado).
*
* @access public
* @param array $v_filaDatos
*/
public function borrar($v_filaDatos) {
$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} \nWHERE {$str_condicion}";
//Debug:Indicamos que ejecutamos la consulta
IgepDebug::setDebug(DEBUG_IGEP, __CLASS__ . ": Ejecutamos borrado:{$consulta}
");
try {
$res = $this->obj_conexion->exec($consulta);
}
catch (Exception $e) {
//Excepciones PDO
$this->obj_errorBD->setError("IGEP-2",'IgepPersistencia.php',"borrar",$e->getMessage(),$consulta);
return;
}
//Tratamiento de errores
if ((!$this->is_pdo AND PEAR::isError($res)) OR ($this->is_pdo AND $res===FALSE))
$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
/**
* Dada una tupla o fila de la tabla realiza el UPDATE. Recibe
* dos parámetros; 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 comprobación de consistencia (se actuliza la
* tupla siempre y cuando alguien no la haya modificado). Los dos
* parámetros son arrays asociativos de la forma ["campo"]=>"valor".
*
* @access public
* @param array $v_filaDatos
* @param array $v_filaDatosAntiguos
*/
public function actualizar($v_filaDatos, $v_filaDatosAntiguos) {
$str_set = '';
foreach($v_filaDatos as $prop => $val) {
if( $v_filaDatosAntiguos[$prop]!==$val || (!isset($v_filaDatosAntiguos[$prop]) && isset($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 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 Actualización
if ($str_condicion!='' AND $str_set!='') {
$consulta = "UPDATE {$this->str_tabla} SET {$str_set} \nWHERE {$str_condicion}";
//Debug:Indicamos que ejecutamos la consulta
IgepDebug::setDebug(DEBUG_IGEP, __CLASS__ . ": Ejecutamos actualización:{$consulta}
");
try {
$res = $this->obj_conexion->exec($consulta);
}
catch (Exception $e) {
//Excepciones de PDO
$this->obj_errorBD->setError('IGEP-3','IgepPersistencia.php','actualizar',$e->getMessage(), $consulta);
return;
}
//Errores de pear o pdo
if ((!$this->is_pdo AND PEAR::isError($res)) OR ($this->is_pdo AND $res===FALSE))
$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 condición no vacia }//FIN de actualizar }//FIN clase IgepPersistencia ?>