Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2011, 15:07
lopezezequiel
 
Fecha de Ingreso: agosto-2011
Ubicación: Argentina
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 1
metodo singleton con mysql

hola estoy haciendo una web y para facilitarme las cosas hice esta clase
//FUNCION QUE RETORNA UNA CONEXION A LA BASE DE DATOS
function conexion(){
$_conexion = mysql_connect("$host", "$user", "$pass");
mysql_select_db("$DB", $_conexion);
return $_conexion;
}

//CLASE QUE PERMITE REALIZAR CONSULTAS DE MANERA FACIL
class consulta{
private $conexion;

public function __construct(){ //EL CONSTRUCTOR OBTIENE UNA CONEXION
$this->conexion = conexion();
}

public function __destruct(){
mysql_close($this->conexion);
}

public function consultar($_consulta){ //ESTE METODO RETORNA UN RESULTSET DE UNA CONSULTA QUE SE PASA COMO PARAMETRO
return mysql_query($_consulta, $this->conexion);
}
}


estaba queriendo usar el metodo singleton para lograr que se pueda instanciar una sola vez e hice algo asi

//CLASE QUE PERMITE REALIZAR CONSULTAS DE MANERA FACIL
class consulta{
static private $instancia = NULL;

private $conexion;

public function __construct(){}

public function __clone(){
return false;
}

public function get_instancia(){
if (self::$instancia == NULL){
self::$instancia = new consulta();
self::$instancia->$conexion = conexion();
}
return self::$instancia;
}

public function __destruct(){
mysql_close($this->conexion);
}

public function consultar($_consulta){ //ESTE METODO RETORNA UN RESULTSET DE UNA CONSULTA QUE SE PASA COMO PARAMETRO
return mysql_query($_consulta, $this->conexion);
}
}


mi problema es que no se como asignarle la conexion al momento de crear la instancia, probe poner el atributo conexion como public, pero no funciona
tengo que crear un metodo conectar o puedo iniciar la variable al instanciar la clase??

como ceran soy nuevo programando en php sobre todo phpoo
desde ya muchas gracias