Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasy i ADOdb
Forum PHP.pl > Forum > PHP
Sabistik
Mam nastepujacy proble, chodzi o adodb i kalsy (singleton?)

potrzebuje polaczenia z db.

czyli tworze polaczenie:

  1. <?php
  2.  
  3. include(&#092;"adodb.inc.php\");
  4.  
  5. $db = NewADOConnection('mysql');
  6. $db->Connect(&#092;"localhost\", \"root\", \"password\", \"mydb\");
  7. $result = $db->Execute(&#092;"SELECT * FROM tabela\");
  8.  
  9. //teraz sobie obrabiam te dane ktore uzyskalem itd.
  10.  
  11. ?>


Nastepnie potrzebuje stworzyc klase w ktorej tez bede potrzebowal cos z db
  1. <?php
  2.  
  3. class jakasKlasa
  4. {
  5.  public $zmienna;
  6.  
  7.  public function jakas()
  8.  {
  9. // i tu potrzebuje cos wyciagnac z bazy
  10. // teraz robie to tak:
  11. global $db // zle rozwiazanie?
  12. $r = $db->Execute(&#092;"SELECT * FROM tabela\");
  13. // itd
  14.  }
  15. }
  16. ?>


Teraz moje pytanie czy nieda sie zrobic tego jakos prosciej? uzyc jakos singletonu ? bo uzywanie global" title="Zobacz w manualu PHP" target="_manual nie jest chyba najlepszym rozwiazaniem. Jak u Was to wyglada? Co radzicie?
DeyV
w php5 np. tak

  1. <?php
  2.  
  3. class Core {
  4. static private $Db;
  5.  
  6. /**
  7.  * @return ADONewConnection
  8.  */
  9. static public function Db()
  10. {
  11. if( empty( self::$Db ) )
  12. {
  13. include_once( DIR_LIB. 'adodb/adodb.inc.php');
  14.  
  15. self::$Db = ADONewConnection( $GLOBALS['CONFIG']['db']['typ'] ); 
  16. self::$Db->debug = $GLOBALS['CONFIG']['db']['debug']; 
  17.  
  18. $bWynik = @ self::$Db -> 
  19. Connect( $GLOBALS['CONFIG']['db']['host'], 
  20.  $GLOBALS['CONFIG']['db']['user'], 
  21.  $GLOBALS['CONFIG']['db']['haslo'],
  22.  $GLOBALS['CONFIG']['db']['name'] 
  23.  );
  24. }
  25. return self::$Db;
  26. }
  27. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.