Skocz do zawartości

Obiektowa obsługa baz danych


dj.drezyna

Polecane posty

Jest następująca klasa , która rozszerzana jest przez inne klasy np. do pobierania danych.

class BazaDanych {

protected $polbazy;

public function __construct() {
{ require 'ustawy.php'; } //Ustawienia bazy danych;
$this->polbazy = @mysql_connect($ini_host, $ini_uzytk,$ini_haslo);
if (!$this->polbazy) {
die('Nie można się połaczyć: ' . mysql_error());
}
//else echo 'Połączono!';
if (!mysql_select_db($ini_baza,$this->polbazy)) {
die('Nie można wybrać bazy: ' . mysql_error());
}
mysql_set_charset('latin2',$this->polbazy);
}

public function nast_id($tabela) {
$zapytanie = "SHOW TABLE STATUS LIKE '".$tabela."'";
$wynik = mysql_query($zapytanie,$this->polbazy);
return mysql_result($wynik, 0, 'Auto_increment');
}

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

}

A problem pojawia się kiedy chce się skorzystać z metody nast_id($tabela), ponieważ działa w tym miejscu destruktor który zamyka połączenie bazy przy korzystaniu w ten sposób:

class abc {

public function abc() {
//jakies instrukcje;

$baza = new BazaDanych();
$nr = $baza->nast_id('tabela');

//jakies instrukcje;
}

}

Otóż pojawia się ostrzeżenie, że polecenia mysql_close() ma pusty parametr: Warning: mysql_close() expects parameter 1 to be resource, null given in ... Dlatego podejrzewam ten destruktor tylko tu pojawia się problem jak bezpiecznie zamknąć połączenie, jeżeli usunie się tą deklarację z __destruct()

 

Bardzo dziękuję za podanie możliwego rozwiązania problemu. Pozdrawiam.

Galeria przyrodnicza http://fotokrajobrazy.warmia.pl

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...