Hocam öncelikle verdiğin engin bilgiler için çok teşekkür ediyorum bu denli açıklayıcı olmanda cabası .


Bir nesne sonlandırılmadığı sürece __destruct fonksiyonu çalışmıyo taki php kendi sonlandırana kadar doğru anlamışım sanırım ve her sorgudan sonra bu mantıkla mysql_close yapmama gerek kalmıyo sanırım yani


class DB 
{ 
... 
  function get_connection() 
  { 
    return $this->connection; 
  } 
... 
} 

$db1 = new DB(); 
$db1->select_db("test"); 
var_dump(mysql_fetch_assoc(mysql_query("SHOW PROCESSLIST", $db1->get_connection()))); 
mysql_close();


$db2 = new DB(); 
$db2->select_db("test"); 
var_dump(mysql_fetch_assoc(mysql_query("SHOW PROCESSLIST", $db2->get_connection())));  

mysql_close();

Bu şekilde baglantıları her sorgudan sonra kapatmama gerek kalmıyo.

Bunun sebebi betik sonunda yani __destruct fonksiyonun calışmasımı yoksa php acık baglantıyı bir süre sonra kendi yok ediyo bumudur?






Tekrar teşekkürü bir borç biliyorum .Klavyen zeval görmesin

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:19:20 -->-> Daha önceki mesaj 12:00:27 --

class DB
{
  private static $_instance = NULL;
  private $_hostname = 'localhost';
  private $_username = 'root';
  private $_password = '';
  private $_connection;

  public static function get_instance()
  {
    if(is_null(DB::$_instance))
      DB::$_instance = new DB();

    return DB::$_instance;
  }

  private function __construct()
  {
    $this->_init_connection();
    $this->_init_charset();
  }

  private function _init_connection()
  {
    if(!$this->_connection = mysql_connect($this->_hostname, $this->_username, $this->_password))
      throw new Exception("{$this->_hostname} üzerinde bağlantı kurulamadı.");
  }

  private function _init_charset()
  {
    header('Content-type: text/html; charset=utf-8');
    mysql_query("SET NAMES UTF8");
    mysql_query("SET character_set_client = 'utf8'");
    mysql_query("SET character_set_results = 'utf8'");
    mysql_query("SET character_set_connection = 'utf8'");
  }

  public function select_db($database)
  {
    if(!mysql_select_db($database, $this->_connection))
      throw new Exception("Veritabanına bağlanamadı");
  }

  public function query($query_string)
  {
    echo "{$query_string} <br />";
  }

  public function __destruct()
  {
    mysql_close();
  }

  private function __clone() { }
}

Ve son olarak getinstance() fonksiyonun işlevi nedir çok olmayacaksam