<?php
/*
* Copyright 2017-08-31 Cámara de Comercio de Santa Marta para el Magdalena.
* Autor: Luis Montoya <lmontoya@ccsm.org.co at www.ccsm.org.co>.
* Archivo: Conexion.
*
* 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.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
/**
* Description of Conexion
*
* @author Luis Montoya <lmontoya@ccsm.org.co at www.ccsm.org.co>
*/
class FeederDB extends PDO {
public static $instancia = null;
public function __construct() {
self::bdDesarrollo();
try {
parent::__construct(
'mysql:host=' .FHOST . ';dbname=' . FBD_NAME, FBD_USER, FBD_PASSWORD, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_PERSISTENT => false
)
);
$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;
}
public static function iniciarTransaccion(){
$conexion = self::singleton();
$conexion->beginTransaction();
}
public static function grabarTransaccion(){
$conexion = self::singleton();
$conexion->commit();
}
public static function cancelarTransaccion(){
$conexion = self::singleton();
$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;
}
}
private static function bdDesarrollo() {
define('FHOST', '192.185.163.242');
define('FBD_NAME', 'palmsoft_feeder');
define('FBD_NAME_LOG', 'palmsoft_ccsm');
define('FBD_USER', 'palmsoft_ccsm');
define('FBD_PASSWORD', 'h6OCwyhh%B_)');
}
}