Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Singleton i PEAR w MySQL - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Singleton i PEAR w MySQL (/thread-singleton-i-pear-w-mysql)



Singleton i PEAR w MySQL - Marys - 26-05-2011

Witam,
chciałbym wykorzystać wzorzec Singletona do połączenia się z bazą danych (MySQL) i do tego dołożyłem sobie PEAR' a, ale coś mi nie idzie. To co mam to są takie pliki:

classa.Databases.php
Kod PHP:
<?php
require_once('pear/MDB2.php');
require_once(
'config.php');


class 
Datebase{    
    private 
$conn;

    private function 
__construct($zmienna=null){
        global 
$mysql_dsn;
        
        if(
$zmienna==null){
            
$zmienna $mysql_dsn;
        }
        
        
$this->conn=MDB2::connect($zmienna);
    }
    
    static public function 
instance(){
        static 
$objMDB2;
        
        if (!isset(
$objMDB2)){
            
$objMDB2 = new Datebase();
        }
        
        return 
$objMDB2;
    }
    
    function 
select($sql){
        
$result $this->conn->query($sql);
        
        return 
$result;
    }
    
    function 
fetchAll($sql){
        
$result $this->conn->fetchAll($sql);
        
        return 
$result;
    }

}
?>

Wiem, że brakuje obsługi błędów.

test.php
Kod PHP:
<?php
    
require_once('class.Database.php');
    
    
$ble Datebase::instance();
    
$elb $ble->fetchAll('SELECT * FROM moajtabela');
    
    echo 
$elb;
?>

I teraz tak. Po pierwsze czy dobrze myślę o wzorze Singletona (dobrze jest napisana klasa)? Po drugie czemu mi wywala błąd(Fatal error: Call to undefined function: MDB2_Driver_mysqli::numCol(). in pear/MDB2.php on line 1950)? To wygląda na błąd PEAR, ale jak robię normalnie bez mojej klasy to jest dobrze. Po trzecie, widziałem gdzieś jak koleś właśnie tworzył takie metody jak u mnie (fetchAll), ale czy przed tym nie powinno występować query()?

Nie wiem co tu jeszcze może być źle


RE: Singleton i PEAR w MySQL - Pedro84 - 26-05-2011

Po cholere Ci ta Twoja klasa (w dodatku bezsensownie napisana)?


RE: Singleton i PEAR w MySQL - Marys - 26-05-2011

Już wiem, trochę się zmieniło. Wzorowałem się na starym artykule. Temat w sumie do zamknięcia