class FachadaBD
{
var $_obj_fachada_bd; //Objeto que se encarga de realizar todas las operaciones en la base de datos ya sea con MYSQL o Postgres
var $_obj_DB_oci8;
var $_con_transaccion;//flag para manejar si la operación a ejecutar esta siendo ejecutada en una transacción
...
function insertar ($datos_a_insertar)
{
//print_r($datos_a_insertar);
//Intenta abrir la conexión a la BD o recuperar el id de la conexión si es con transacción
if ($this->conectar()==false)
{
$this->desconectarOCancelarTransaccion(); // Termina la ejecución
$this->asignarError(0);
return 0;
}
$atributos_tabla=$this->_obj_fachada_bd->obtenerAtributos();
$nombre_tabla=$this->_obj_fachada_bd->obtenerNombreTabla();
if($nombre_tabla==null)
{
$this->desconectarOCancelarTransaccion();
$this->asignarError(-1);
return -1;
}
if($atributos_tabla==null)
{
$this->desconectarOCancelarTransaccion();
$this->asignarError(-2);
return -2;
}
//Construcción de la instrucción SQL
$sql=$this->construirSQLDeInsertar($datos_a_insertar,$atributos_tabla,$nombre_tabla);
//echo $sql."<br>";
if($sql=="")
{
$this->desconectarOCancelarTransaccion();
$this->asignarError(-5);
return -5;
}
// Ejecutar la Instrucción SQL en el SMBD
$resultado_operacion=$this->ejecutarOperacion($sql);
//Hubo un error entre el SMBD y la instrucción SQL ingresada
if( $resultado_operacion==false)
{
$this->desconectarOCancelarTransaccion();
$this->asignarError(-3);
return -3;
}
if (!($this->_con_transaccion))//No se manejo transacción
{
$this->desconectar();
}
return 1;
}//Fin insertar()
...
}