Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Singleton i PEAR w MySQL
#1
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
Odpowiedz
#2
Po cholere Ci ta Twoja klasa (w dodatku bezsensownie napisana)?
Odpowiedz
#3
Już wiem, trochę się zmieniło. Wzorowałem się na starym artykule. Temat w sumie do zamknięcia
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,035 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,930 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,929 24-08-2013, 16:26
Ostatni post: msx83
  Komunikacja PHP z MySQL na serwerze pawstrze 5 6,455 16-07-2013, 15:58
Ostatni post: Engine
  [MySQL] wyszukiwarka problem darlowiak 3 3,562 13-06-2013, 12:58
Ostatni post: darlowiak

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl