Se puede definir una clase conexión (mysql) con el patrón singlenton, y al instanciar poder pasar el identificador de conexión a otro objeto que haga uso de conexión con mysql(clase ConsultaProducto también descrita mas abajo).
Clase conexión
Código PHP:
<?php
class Conexion{
#Propiedades
private $user=" ";
private $host=" ";
private $pass=" ";
private $database=" ";
private $conn;
private static $instance; #Instancia única de conexión
#Metodo private constructor previene creación de objetos vía new
private function __construct()
{
if(!isset($this->conn)){
$this->conn = (mysql_connect($this->host,$this->user,$this->pass)) or die(mysql_error());
mysql_select_db($this->database,$this->conn) or die(mysql_error());
}#fin de if(!isset($this->conn))
}#fin de constructor
#El método con patron singleton
public static function getInstance()
{
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}#fin de if (!isset(self::$instance))
return self::$instance;
}#public static function singleton()
#Clone no permitido
#Este metodo se ejecuta cuando usamos el operador clone
public function __clone()
{
trigger_error('Clone no se permite.', E_USER_ERROR);
}#fin de metodo public function __clone()
private function __destruct(){
mysql_close($this->conn);
}#fin de __destruct()
}#fin de class Conexión
Código PHP:
$obj1 = Conexion::getInstance();
Código PHP:
$obj2= new ConsultaProducto();
Clase consulta producto
Código PHP:
class ConsultaProducto{
private $sql;
private $resource;
#Metodo unicamente para obtenr el string del query
public function setQuery($sql){
if(empty($sql)){
return false;
}#fin del if
$this->sql = $sql;
return true;
}#fin metodo public function setQuery()
#ejecuta lo que pasaron al metodo setQuery lo cual fue pasado a la
#propiedad privada sql
public function execute(){
if(!($this->resource = mysql_query($this->sql, /*¿como paso el identificador?*/))){
return null;
}#fin de if(!($this->resource = mysql_query($this->sql, /*¿como paso el identificador?*/)))
return $this->resource;
}#fin metodo public function execute()
public function getRows(){
if(!($result=$this->execute())){
return null;
}
$array=array();
while($row=mysql_fetch_assoc($result)){
$array[]=$row;
}
return $array;
}#fin del
}#fin class ConsultaProducto