Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Clase para conexión Mysql

Estas en el tema de Clase para conexión Mysql en el foro de Frameworks y PHP orientado a objetos en Foros del Web. No tengo apenas idea de programación orientada a objetos, pero quiero ir aprendiendo poquito a poco a base de practicar. Básicamente he hecho esto: Código ...
  #1 (permalink)  
Antiguo 07/03/2007, 10:58
 
Fecha de Ingreso: noviembre-2005
Mensajes: 15
Antigüedad: 18 años, 5 meses
Puntos: 0
Clase para conexión Mysql

No tengo apenas idea de programación orientada a objetos, pero quiero ir aprendiendo poquito a poco a base de practicar. Básicamente he hecho esto:

Código PHP:
<?php
class SQL{
    private 
$conexion null;

    function 
__construct($basedatos){//Constructor que crea la conexión
        
if($this->conexion == null){
            
$this->conexion mysql_connect("localhost","usuario","contraseña") or die ("Ha habido un error al conectar con la base de datos: ".mysql_error());
            
mysql_select_db($this->seleccionar_BD($basedatos),$this->conexion) or die("Error al acceder a la base de datos");
        }
    }
    
    function 
__destruct(){//Cierra la conexión con la base de datos
        
mysql_close($this->conexion);
    }
    
    private function 
seleccionar_BD($basedatos){//Selecciona la base de datos
        
switch($basedatos){
            case
'base1':return('base_defecto');break;
            case
'base2':return('base2');break;
        }
    }    
    
    public function 
Ejecutar($SQL){//Ejecuta la consulta
        
$this->resultado mysql_query($SQL) or die("Falló la consulta: ".mysql_error());
        return 
$this->resultado;
    }
}

$db = new SQL('base1');
$consulta $db->Ejecutar("SELECT * FROM ...");
while(
$resultado mysql_fetch_object($consulta)){
    echo
$resultado->Id.'</br>';
}

$adbaa = new SQL('base2');
$consulta $adbaa->Ejecutar("SELECT * FROM tareas");
while(
$resultado mysql_fetch_object($consulta)){
    echo
$resultado->Tarea.'</br>';
}

$db2 = new SQL('base1');
$consulta $db2->Ejecutar("SELECT * FROM ...");
while(
$resultado mysql_fetch_object($consulta)){
    echo
$resultado->Jugador.'</br>';
}
?>
El problema está en que al acabar el destructor se desconecta pero me da esta advertencia: Warning: mysql_close(): 2 is not a valid MySQL-Link resource in C:\wamp\www\OOP.php on line 14
¿Cómo podría solucionarlo? ¿Cómo podría mejorarlo?

Gracias anticipadas.

Última edición por Sefrot; 03/04/2007 a las 07:51
  #2 (permalink)  
Antiguo 12/03/2007, 04:54
Avatar de noid  
Fecha de Ingreso: marzo-2007
Mensajes: 2
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Clase para conexión Mysql

A mí me pasaba igual. Lo que ocurre es que realizas una nueva llamada a mysql_connect con los mismos argumentos. Símplemente tienes que añadirle a mysql_connect el parámetro opcional "new_link" como true y te permitirá establacer más de una conexión en vez de retomar la última.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:13.