<?php
/**
* Descripción de Conexion Apps
*
* Conexion a la Base de datos de las aplicaciones
*
* Licenciado bajo la Licencia Apache, Versión 2.0;
* Usted no puede usar este archivo excepto en conformidad con la Licencia.
* Usted puede obtener una copia de la Licencia en:
* http://www.php.net/license/3_01.txt.
* A menos que sea requerido por la ley aplicable o acordado por escrito, el software
* Distribuido bajo la licencia se distribuye en una "AS IS" o "COMO ESTA" BASE,
* SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas.
* Consulte la Licencia para los permisos y Limitaciones bajo la Licencia.
*
* @package Libreria\Conexiones\
* @author JUAN PABLO LLINAS RAMIREZ <jpllinas@ccsm.org.co>
* @author SICAM 20171025 <sicam32@ccsm.org.co>
* @copyright 2017 Cámara de Comercio de Santa Marta para el Magdalena
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version 201712140352
* @link http://sicam.ccsm.org.co/docs/libreria/conexiones/
*/
class AppsDB extends Conexiones {
public static $instancia = null;
public function __construct() {
switch( VERSION_SICAM_EJECUCION ){
case 'PRODUCCION':
self::bdProduccion();
break;
case 'PREPRODUCCION':
self::bdDesarrollo();
break;
case 'DESARROLLO':
default:
self::bdDesarrollo();
break;
}
$this->dsn = 'mysql:host=' . self::$HOST . ';dbname=' . self::$BD_NAME;
$this->username = self::$BD_USER;
$this->password = self::$BD_PASSWORD;
$this->options = array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_PERSISTENT => false );
try {
parent::__construct($this->dsn, $this->username, $this->password, $this->options);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'ERROR: ' . $e->getMessage() ."<br />";
echo "Conexion desde la IP:". getHostByName(getHostName());
die();
}
}
public static function singleton() {
if (!isset(self::$instancia)) {
$miclase = __CLASS__;
self::$instancia = new $miclase;
}
return self::$instancia;
}
private static function bdDesarrollo() {
self::$HOST = '192.185.163.242';
self::$BD_NAME = 'palmsoft_ccsm_apps';
self::$BD_NAME_LOG = 'palmsoft_ccsm';
self::$BD_USER = 'palmsoft_ccsm';
self::$BD_PASSWORD = 'h6OCwyhh%B_)';
}
private static function bdPreProduccion() {
self::$HOST = '192.185.163.242';
self::$BD_NAME = 'palmsoft_ccsm_apps';
self::$BD_NAME_LOG = 'palmsoft_ccsm';
self::$BD_USER = 'palmsoft_ccsm';
self::$BD_PASSWORD = 'h6OCwyhh%B_)';
}
private static function bdProduccion() {
self::$HOST = '192.185.163.242';
self::$BD_NAME = 'ccsm_sicam_apps';
self::$BD_NAME_LOG = 'ccsm_sicam_log';
self::$BD_USER = 'ccsm_sicam_prod';
self::$BD_PASSWORD = 'Tu93175JJ#&@';
}
public static function iniciarTransaccion(){
$conexion = self::singleton();
if( !$conexion->inTransaction() ){
$conexion->beginTransaction();
}
}
public static function grabarTransaccion(){
$conexion = self::singleton();
if( $conexion->inTransaction() ){
$conexion->commit();
}
}
public static function cancelarTransaccion(){
$conexion = self::singleton();
if( $conexion->inTransaction() ){
$conexion->rollBack();
}
}
public static function selectUnaFila($sqlQuery, $datosQuery = array() ) {
$conexion = self::singleton();
try {
//$conexion->beginTransaction();
$sentenciaSql = $conexion->prepare($sqlQuery);
$sentenciaSql->execute($datosQuery);
$datos = $sentenciaSql->fetch(PDO::FETCH_OBJ);
//$conexion->commit();
if (!empty($datos)) {
return $datos;
}
return NULL;
} catch (PDOException $error) {
if( $conexion->inTransaction() ){
$conexion->rollBack();
}
throw $error;
}
}
public static function selectVariasFilas($sqlQuery, $datosQuery = array() ) {
$conexion = self::singleton();
try {
// $conexion->beginTransaction();
$sentenciaSql = $conexion->prepare($sqlQuery);
$sentenciaSql->execute($datosQuery);
$datos = $sentenciaSql->fetchAll(PDO::FETCH_OBJ);
// $conexion->commit();
if (!is_null($datos)) {
return $datos;
}
return NULL;
} catch (PDOException $error) {
if( $conexion->inTransaction() ){
$conexion->rollBack();
}
throw $error;
}
}
public static function insertFila($sqlQuery, $datosQuery = array() ) {
$conexion = self::singleton();
try {
//$conexion->beginTransaction();
$sentenciaSql = $conexion->prepare($sqlQuery);
$sentenciaSql->execute($datosQuery);
$ultimoInsert = $conexion->lastInsertId();
//$conexion->commit();
if (!is_null($ultimoInsert)) {
return $ultimoInsert;
}
return NULL;
} catch (PDOException $error) {
if( $conexion->inTransaction() ){
$conexion->rollBack();
}
throw $error;
}
}
public static function actualizarFila($sqlQuery, $datosQuery = array() ) {
$conexion = self::singleton();
try {
//$conexion->beginTransaction();
$sentenciaSql = $conexion->prepare($sqlQuery);
$sentenciaSql->execute($datosQuery);
$modificados = $sentenciaSql->rowCount();
//$conexion->commit();
if (!is_null($modificados)) {
return $modificados;
}
return NULL;
} catch (PDOException $error) {
if( $conexion->inTransaction() ){
$conexion->rollBack();
}
throw $error;
}
}
}