Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/03/2017, 13:03
Avatar de sebandrescc2
sebandrescc2
 
Fecha de Ingreso: diciembre-2012
Mensajes: 45
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Clase para conecta a BD mysqli

Hola,

Resulta que estoy utilizando esta clase para la conexión con la BD y realizar consultas
https://gist.github.com/Klerith/5fdb98e266ff3449f2ed

Código PHP:
<?
// ======================================================
// Clase: class.Database.php
// Funcion: Se encarga del manejo con la base de datos
// Descripcion: Tiene varias funciones muy útiles para
//                 el manejo de registros.
//                 
// Ultima Modificación: 17 de marzo de 2015
// ======================================================
    
class Database{
    private 
$_connection;
    private 
$_host "localhost";
    private 
$_user "caphum_user";
    private 
$_pass "AHAcL3SLuEawwVaW";
    private 
$_db   "capitalhumano_db";
    
// Almacenar una unica instancia
    
private static $_instancia;
    
// ================================================
    // Metodo para obtener instancia de base de datos
    // ================================================
    
public static function getInstancia(){
        if(!isset(
self::$_instancia)){
            
self::$_instancia = new self;
        }
        return 
self::$_instancia;
    }
    
// ================================================
    // Constructor de la clase Base de datos
    // ================================================
    
public function __construct(){
        
$this->_connection = new mysqli($this->_host,$this->_user,$this->_pass,$this->_db);
        
// Manejar error en base de datos
        
if (mysqli_connect_error()) {
            
trigger_error('Falla en la conexion de base de datos'mysqli_connect_error(), E_USER_ERROR );
        }
    }
    
// Metodo vacio __close para evitar duplicacion
    
private function __close(){}
    
// Metodo para obtener la conexion a la base de datos
    
public function getConnection(){
        return 
$this->_connection;
    }
    
// Metodo que revisa el String SQL
    
private function es_string($sql){
        if (!
is_string($sql)) {
            
trigger_error('class.Database.inc: $SQL enviado no es un string: ' .$sql);
            return 
false;
        }
        return 
true;
    }
    
// ==================================================
    //     Funcion que ejecuta el SQL y retorna un ROW
    //         Esta funcion esta pensada para SQLs, 
    //         que retornen unicamente UNA sola línea
    // ==================================================
    
public function get_Row($sql){
        
        if(!
self::es_string($sql))
            exit();
        
$db DataBase::getInstancia();
        
$mysqli $db->getConnection();
        
$resultado $mysqli->query($sql);
        if(
$row $resultado->fetch_assoc()){
            return 
$row;
        }else{
            return array();
        }
    }
    
// ==================================================
    //     Funcion que ejecuta el SQL y retorna un CURSOR
    //         Esta funcion esta pensada para SQLs, 
    //         que retornen multiples lineas (1 o varias)
    // ==================================================
    
public function get_Cursor($sql){
        if(!
self::es_string($sql))
            exit();
        
$db DataBase::getInstancia();
        
$mysqli $db->getConnection();
        
$resultado $mysqli->query($sql);
        return 
$resultado// Este resultado se puede usar así:  while ($row = $resultado->fetch_assoc()){...}
    
}
    
// ==================================================
    //     Funcion que ejecuta el SQL y retorna un jSon
    //     data: [{...}] con N cantidad de registros
    // ==================================================
    
public function get_json_rows($sql){
        if(!
self::es_string($sql))
            exit();
        
$db DataBase::getInstancia();
        
$mysqli $db->getConnection();
        
$resultado $mysqli->query($sql);
        
// Si hay un error en el SQL, este es el error de MySQL
        
if (!$resultado ) {
            return 
"class.Database.class: error "$mysqli->error;
        }
        
        
$i 0;
        while(
$row $resultado->fetch_assoc()){
            
$registros[$i]= $row;
            
$i++;
        };
        return 
json_encode( array('data' => $registros ) );
    }
    
// ==================================================
    //     Funcion que ejecuta el SQL y retorna un jSon
    //     de una sola linea. Ideal para imprimir un
    //     Query que solo retorne una linea
    // ==================================================
    
public function get_json_row($sql){
        if(!
self::es_string($sql))
            exit();
        
$db DataBase::getInstancia();
        
$mysqli $db->getConnection();
        
$resultado $mysqli->query($sql);
        
// Si hay un error en el SQL, este es el error de MySQL
        
if (!$resultado ) {
            return 
"class.Database.class: error "$mysqli->error;
        }
        if(!
$row $resultado->fetch_assoc()){
            return 
"{}";
        }
        return 
json_encode$row );
    }
    
// ====================================================================
    //     Funcion que ejecuta el SQL y retorna un valor
    //     Ideal para count(*), Sum, cosas que retornen una fila y una columna
    // ====================================================================
    
public function get_valor_query($sql,$columna){
        if(!
self::es_string($sql,$columna))
            exit();
        
$db DataBase::getInstancia();
        
$mysqli $db->getConnection();
        
$resultado $mysqli->query($sql);
        
// Si hay un error en el SQL, este es el error de MySQL
        
if (!$resultado ) {
            return 
"class.Database.class: error "$mysqli->error;
        }
        
$Valor NULL;
        
//Trae el primer valor del arreglo
        
if ($row $resultado->fetch_assoc()) {
            
// $Valor = array_values($row)[0];
            
$Valor $row[$columna];
        }
        return 
$Valor;
    }
    
// ====================================================================
    //     Funcion que ejecuta el SQL de inserción, actualización y eliminación
    // ====================================================================
    
public function ejecutar_idu($sql){
        if(!
self::es_string($sql))
            exit();
        
$db DataBase::getInstancia();
        
$mysqli $db->getConnection();
        if (!
$resultado $mysqli->query($sql) ) {
            return 
"class.Database.class: error "$mysqli->error;
        }else{
            return 
$resultado;
        }
        
        return 
$resultado;
    }
    
// ====================================================================
    //     Funciones para encryptar y desencryptar data: 
    //         crypt_blowfish_bydinvaders
    // ====================================================================
    
function crypt($aEncryptar$digito 7) {
        
$set_salt './1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
        
$salt sprintf('$2a$%02d$'$digito);
        for(
$i 0$i 22$i++)
        {
            
$salt .= $set_salt[mt_rand(022)];
        }
        return 
crypt($aEncryptar$salt);
    }
    function 
uncrypt($Evaluar$Contra){
        if( 
crypt($Evaluar$Contra) == $Contra)
            return 
true;
        else
            return 
false;
        
    }
}
?>
El problema radica en que el servidor tiene deshabilitado el módulo de mysqli y no hay opcioón alguna para habilitarlo.

La pregunta es, como puedo usar las funciones de mysql nativas en esta clase, para no modificar el código. Hice algunos intentos pero no tengo los conocimientos suficientes como para realizarlo. Cualquier orientación es bienvenida. Gracias
__________________
Aquí voy a escribir mi firma