Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2014, 19:01
wilmer30
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
conexion mysqli

Hola:

Intento realizar pruebas de conexión usando POO con mysqli, trabajo en ubuntu 12.04 lts, php 5.5 en la configuración de php tengo habilitado el mysqli asi:
Cita:
MysqlI Support enabled
Client API library version 5.5.37
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
Client API header version 5.5.35
MYSQLI_SOCKET /var/run/mysqld/mysqld.sock

Directive Local Value Master Value
mysqli.allow_local_infile On On
mysqli.allow_persistent On On
mysqli.default_host no value no value
mysqli.default_port 3306 3306
mysqli.default_pw no value no value
mysqli.default_socket /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.sock
mysqli.default_user no value no value
mysqli.max_links Unlimited Unlimited
mysqli.max_persistent Unlimited Unlimited
mysqli.reconnect Off Off
en una primera prueba me sale la conexión excelente:
Código PHP:
<?php
$mysqli 
mysqli_connect('localhost''root''12345678''mvc');

/* Comprueba la conexión */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}


/* Selecciona todas las filas */
$result $mysqli->query("SELECT * FROM usuarios");
printf("Affected rows (SELECT): %d<br>"$mysqli->affected_rows);

$result->close();

mysqli_close($mysqli);
?>
pero al probar esta clase:
Código PHP:
<?php
abstract class DBAbstractModel{
    private static 
$db_host 'localhost';
    private static 
$db_user 'root';
    private static 
$db_pass '12345678';
    protected 
$db_name 'mvc';
    protected 
$query;
    protected 
$rows = array();
    private 
$conn;

    
# metodos abstractos para ABM de clases que hereden
    
abstract protected function get();
    abstract protected function 
set();
    abstract protected function 
edit();
    abstract protected function 
delete();

    
#Los siguientes metodos pueden definirse con exactitud y no son abstractos
    #Conectar a la base de datos
    
private function open_connection(){
        
$this->conn = new mysqli(self::$db_hostself::$db_userself::$db_pass$this->db_name);
    }

    
#Desconectar la base de datos
    
private function close_connection(){
        
$this->conn->close();
    }

    
#Ejecutar un query simple de tipo INSERT, DELETE UPDATE
    
protected function execute_simple_query(){
        
$this->open_connection();
        
$this->conn->query$this->query );
        
$this->close_connection();
    }

    
#traer resultados de una consulta en un array
    
protected function get_results_from_query(){
        
$this->open_connection();
        
$result $this->conn->query($this->query);

        while (
$this->rows[] = $result->fetch_assoc()) {
            
$result->close;
            
$this->close_connection();
        }

        
array_pop($this->rows);
    }
}
?>
me arroja este erroe en el log:

[Thu Apr 24 20:56:45.444868 2014] [:error] [pid 31440] [client 127.0.0.1:35325] PHP Warning: mysqli::close(): Couldn't fetch mysqli in /var/www/pruebas/poo/db_abstract_model.php on line 25, referer: http://localhost/pruebas/poo/