Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obiekt widoczny we wszystkich metodach klasy. Jak?
Forum PHP.pl > Forum > PHP > Object-oriented programming
ArniPL
Witam,
Może najpierw kawałek przykładowego kodu:
  1. <?php
  2. class MySQL {
  3.  
  4. public function Connect() {
  5.  
  6. include('config/config.php');
  7.  
  8. try {
  9. $pdo = new PDO('mysql:host='.$Host.';dbname='.$Database.', '.$Username.', '.$Password.);
  10. }
  11.  
  12. catch(PDOException $e) {
  13. exit();
  14. }
  15.  
  16. }
  17.  
  18. public function Query($Query) {
  19.  
  20. $Result = $pdo -> query($Query);
  21.  
  22. }
  23.  
  24. }
  25. ?>


Chcę, żeby w metodzie Query był widoczny obiekt $pdo tworzony w metodzie Connect. Jak tego dokonać? smile.gif
dr_bonzo
  1. <?php
  2. class MySQL {
  3.  private $pdo;
  4. public function Connect() {
  5.  
  6. include('config/config.php');
  7.  
  8. try {
  9. $this->pdo = new PDO('mysql:host='.$Host.';dbname='.$Database.', '.$Username.', '.$Password.);
  10. }
  11.  
  12. catch(PDOException $e) {
  13. exit();
  14. }
  15.  
  16. }
  17.  
  18. public function Query($Query) {
  19.  
  20. $Result = $this->pdo -> query($Query);
  21.  
  22. }
  23.  
  24. }
  25. ?>
jastu
Na bardzo szybko tongue.gif , w pełni wierzący w waszą bezbłędność tworzonego kodu i bezawaryjność baz danych

  1. <?php
  2. class DB{
  3.  
  4. // instancja klasy 
  5. static $instance;
  6.  
  7. // polaczenie z baza
  8. private $resConnectID = null;
  9.  
  10. // prywatny konstruktor
  11. private function __construct(){
  12. $this->resConnectID = mysql_connect(DB_HOST,DB_USER,DB_PASS); 
  13. mysql_select_db(DB_NAME);  
  14. }
  15.  
  16.  
  17. static function Query($sql){
  18.  
  19. if(empty(self::$instance))
  20. {
  21. self::$instance = new self;
  22. } 
  23. return new DBResult(mysql_query($sql,self::Instance->resConnectID));
  24. }
  25.  
  26.  // obiekt result jest już nowym obiektem wynikiu zapytania, klasa DB jest ich fabryką
  27. $result = DB::Query('select * from wykaz_lektur_zkazanych');
  28.  
  29. ?>


a tak mnie naszło .....
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.