Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zastosowanie singletona do połączenia z bazą - problem z rozłączeniem
dj.bobas
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.06.2008

Ostrzeżenie: (0%)
-----


Witajcie.

Mam następujący problem. Napisałem klasę singleton do połączenia z bazą, której kod poniżej umieszczam...

CODE
class OnlyOneConnection
{

private static $db_instance;

private $dbObject;

private function __construct($database)
{
switch ($database)
{
case 'mysql':
$dbObject = mysql_connect('nazwa_hosta','nazwa_usera','haslo') or die(mysql_error());
mysql_select_db('nazwa_bazy') or die(mysql_error());
if (mysql_errno())
{
echo ("Connect failed: ".mysql_error());
exit();
}
break;

case 'postgre':
$host = DB_HOST;
$data_base = DB_DATABASE;
$user = DB_USER;
$pass = DB_PASSWORD;
$conn_string = "host=$host dbname=$data_base user=$user password=$pass";
$dbObject = @pg_connect($conn_string);
if(!$dbObject)
{
echo ("Nie można połączyć się z bazą danych...");
}
break;
}
}

public function var_dumping()
{
var_dump($this);
}

public static function getInstance($database)
{
if (self::$db_instance === null)
{
self::$db_instance = new OnlyOneConnection($database);
}
return self::$db_instance;
}

public static function getConnection()
{
if (self::$db_instance!=null)
{
return $this->dbObject;
}
}

public static function disconn($database)
{
if($database=='mysql') {
mysql_close($dbObject);
}
else if ($database=='postgre') {
pg_close($connection);
}
}

}


No i problem jest następujący: działa połączenie z bazą (czyli konstruktor oraz metoda getInstance) natomiast nie wiem jak napisać metodę rozłączania z bazą poprzez zamknięcie uchwytu. Próbowałem z metodą getConnection, która miała zwracać uchwyt, ale coś pokręciłem i nie działa metoda disconn.
Nie mam pojęcia jak to rozwiązać.... sadsmiley02.gif

Z góry dziękuję za wszelkie sugestie....
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:55