Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wzorzec projektowy Singleton
Marys91
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 29.12.2010

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


Witam,
czytam książkę i na podstawie tej książki stworzyłem sobie klasę obsługującą bazę. Tylko pojawia się pewien problem, a mianowicie do tej klasy jest załączany taki plik jak DB.php i później z tego pliku są używane metody. Pytanie moje brzmi czy to DB.php trzeba samemu napisać czy już jest gdzieś gotowe? Autorzy książki wykorzystują PostgreSQL, a ja chce wykorzystać MySQL. Znalazłem taki link http://pear.php.net/manual/pl/package.data....db.iserror.php i tu są opisane te metody z których korzystam.

Może zaprezentuje kawałek kodu:
  1. <?php
  2.  
  3. require_once('config.php');
  4. require_once('DB.php');
  5.  
  6. Class Datebase{
  7. private $conn;
  8.  
  9. private function __construct($dsn=null){
  10. global $conn;
  11.  
  12. if($dsn == null){
  13. $dsn = $cfg['db']['dsn'];
  14. }
  15.  
  16. $this->conn = DB::connect($dsn);
  17.  
  18. if(DB::isError($this->conn)){
  19. throw new Exception($this->conn->getMessage(), $this->conn->getCode());
  20. }
  21.  
  22. $this->conn->setFetchMode(DB_FETCHMODE_ASSOC);
  23. }
  24.  
  25. static public function instance(){
  26. static $objDB;
  27.  
  28. if(! isset($objDB)){
  29. $objDB = new Datebase();
  30. }
  31.  
  32. return $objDB;
  33. }
  34.  
  35. function __destruct(){
  36. $this->conn->disconnect();
  37. }
  38.  
  39. //Zwraca obiekt DB_result
  40. function select($sql){
  41. $result = $this->conn->query($sql);
  42.  
  43. if(DB::isError($result)){
  44. throw new Exception($result->getMessage(), $result->getCode());
  45. }
  46.  
  47. return $result;
  48. }
  49.  
  50. //Zwraca dwuwymiarową tablicę asocjacyjną
  51. function getAll($sql){
  52. $result = $this->conn->getAll($sql);
  53.  
  54. if(DB::isError($result)){
  55. throw new Exception($result->getMessage(), $result->getCode());
  56. }
  57.  
  58. return $result;
  59. }
  60.  
  61. ...


i teraz jest np. DB::connect, DB::isError, skąd się bierze $this->conn->query($sql)? Zbytnio tego nie rozumiem. Przykładowo, gdzie jest napisana metoda getMessage()? Proszę o jakieś wyjaśnienie bo widzę, że to jest ciekawe rozwiązanie i odciąża serwer.
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: 19.08.2025 - 17:10