servidor = $servidor; $this->nombreBD = $nombreBD; $this->nombreDeUsuario = $nombreDeUsuario; $this->contrasena = $contrasena; } //---------------Metodos y Procedimientos---------------- //conectarBD(); Te permite conectar y enlazar la BD, el enlace a //la BD es almacenado modificando el atributo $enlace function conectarBD() { $retConexionExitosa = true; $this->enlace=mysql_connect( $this->servidor , $this->nombreDeUsuario, $this->contrasena); mysql_select_db($this->nombreBD, $this->enlace); //Si la conexion fue exitosa if(!$this->enlace) { $retConexionExitosa = false; } return $retConexionExitosa; } //consultarBD() permite realizar consultas en la BD enlazada function consultarBD($sentenciaSQL) { $retConsultaExitosa = true; if(!function_exists("mysql_query")){ $this->consulta = mysql_db_query($sentenciaSQL, $this->enlace); } else{ $this->consulta = mysql_query($sentenciaSQL, $this->enlace); } if(!$this->consulta){ $retConsultaExitosa = false; } return $retConsultaExitosa; } //Devuelve los resultados de una fila dada en forma de arreglo asociativo function obtenerFilaArray($fila) { $this->resultado = mysql_fetch_array($this->consulta, MYSQL_BOTH); return $this->resultado; } //Devuelve todas las filas del resultados en un arreglo asociativo function obtenerTotalFilasArray() { //Antes hacia la atriz de una, ahora hacer la matriz a mano: $this->my_fetch_all_Aux($this->consulta,"assoc"); return $this->resultado; } function my_fetch_all_Aux($res, $kind="assoc") { $i = 0; // this is needed for the row integer in the looped pg_fetch_array $array_out = NULL; if ($kind == "assoc") { while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $array_out[] = $row; } } else { while ($row = mysql_fetch_array($res)) { $array_out[] = $row; } } $this->resultado = $array_out; return $this->resultado; } function obtenerConsulta() { return $this->consulta; } function insertarRegistro($sentenciaSQL) { mysql_query($this->enlace,$sentenciaSQL); } function cantidadFilasResultado() { return mysql_num_rows($this->consulta); } function cantidadCamposResultado() { return mysql_num_fields($this->consulta); } //libera el contenido del atributo que almacena las consultas function liberarConsulta() { mysql_free_result($this->consulta); } function desconectarBD() { mysql_close($this->enlace); } function Begin_Transaction() { $SQL_BEGIN = 'BEGIN;'; $this->procesoCorrecto = true; $procesoCorrect=$this->conectarBD(); if($procesoCorrect) { $procesoCorrect = $this->consultarBD($SQL_BEGIN); if($procesoCorrect) { $ret_datos = $this->obtenerTotalFilasArray(); $this->procesoCorrecto = true; } else $this->procesoCorrecto = false; $this->liberarConsulta(); $this->desconectarBD(); } else $this->procesoCorrecto = false; return $ret_datos; } /** * Termina un bloque de transaccion * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip] */ function End_Transaction() { $SQL_END = 'COMMIT;'; $this->procesoCorrecto = true; $procesoCorrect=$this->conectarBD(); if($procesoCorrect) { $procesoCorrect = $this->consultarBD($SQL_BEGIN); if($procesoCorrect) { $ret_datos = $this->obtenerTotalFilasArray(); $this->procesoCorrecto = true; } else $this->procesoCorrecto = false; $this->liberarConsulta(); $this->desconectarBD(); } else $this->procesoCorrecto = false; return $ret_datos; } /** * Vuelve atras las operaciones de un bloque de transaccion * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip] */ function Rollback_Transaction() { $SQL_END = 'ROLLBACK;'; $this->procesoCorrecto = true; $procesoCorrect=$this->conectarBD(); if($procesoCorrect) { $procesoCorrect = $this->consultarBD($SQL_BEGIN); if($procesoCorrect) { $ret_datos = $this->obtenerTotalFilasArray(); $this->procesoCorrecto = true; } else $this->procesoCorrecto = false; $this->liberarConsulta(); $this->desconectarBD(); } else $this->procesoCorrecto = false; return $ret_datos; } }//Fin de la Clase PostgreClass ?>