Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PDO PDO, z ktorej strony ugryzc
rahul
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 5.03.2011

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


Witam
Kozystajac dotychczas z singletona ktory jest ponoc niefajny i chcac sie przerzucic na DI napotkalem sie z problemem jaki robi mi klasa z moim PDO.
Otoz wczenisej mialem taka klase :

  1.  
  2. <?php
  3. class Database extends PDO {
  4.  
  5. protected static $instance;
  6.  
  7.  
  8. public static function getInstance() {
  9. if (!isset(self::$instance)) {
  10.  
  11. $database= array(
  12. 'db_host' => 'localhost',
  13. 'db_user' => 'root',
  14. 'db_pass' => 'admin',
  15. 'db_name' => 'moje');
  16.  
  17. self::$instance = new Database('mysql:host='.$database['db_host'].';dbname='.$database['db_name'], $database['db_user'],$database['db_pass']);
  18. self::$instance->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
  19. }
  20. return self::$instance;
  21. }
  22. }
  23. ?>

i wzystko dzialalo cacy, teraz chce ja zmienic wywalic metody statyczne itp i robie tak :
  1. class DB
  2.  
  3. {
  4. private $dsn;
  5. private $dbname;
  6. private $passwd;
  7. private $options;
  8.  
  9. public function __construct($dsn, $dbname, $passwd, $options)
  10.  
  11. {
  12. $this->dsn = $dsn;
  13. $this->dbname = $dbname;
  14. $this->passwd = $passwd;
  15. $this->options = $options;
  16.  
  17. try
  18. {
  19. $db = new PDO('mysql: host='.$this->dsn.'; dbname='.$this->dbname.'', $this->passwd,$this->options);
  20. return $db;
  21. }
  22.  
  23. catch(PDOException $e)
  24.  
  25. {
  26.  
  27. throw new Exception($e->getMessage());
  28.  
  29. }
  30.  
  31. }
  32.  
  33.  
  34. }


i dupa , wywala blad Fatal error: Call to undefined method DB::query()
nie chce pisac funckji do query, execute czy prepare nie kumam dlaczego teraz sa juz nierozpoznawalne :/

probowalem jeszcze tak :
  1.  
  2. class DB extends PDO
  3. {
  4.  
  5. ...
  6. }
  7.  
  8.  

ale wtedy mi cos gada ze "Warning: PDO::query() [pdo.query]: SQLSTATE[00000]: No error: PDO constructor was not called"
a przeciez jest czy o co be :/ natomiast jak nie napisze funkcji construct , tylko zrobie inna connect to mowi ze nie dostal swoich argumentow, oczekuje 1 a ma 0.
Bez kitu nie kumam, jak to zrobic ? I czy wytlumaczy to ktos jakos tak powoli i klarownie ?
Go to the top of the page
+Quote Post

Posty w temacie
- rahul   PDO PDO   23.08.2011, 11:36:22
- - wookieb   [PHP] pobierz, plaintext class DB extends PDO ...   23.08.2011, 11:50:23


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: 22.08.2025 - 04:48