Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własna klasa do obługi baz danych
Forum PHP.pl > Forum > PHP
Manwe89
Więc coby dużo znowu nie gadać niepotrzebnie smile.gif
DbModule.mod.php
  1. <?php
  2. class Db_Module extends PDO{
  3. private static $_user='xxx', $_pass='yyy', $_host='zzz', $_database='www';
  4.  
  5. protected static $_connection;
  6.  
  7. private function InitConnection_Mod(){
  8. self::$_connection=parent::__construct('mysql:host='.self::$_host.';dbname='.self::$_database, self::$_user, self::$_pass);
  9. }
  10.  
  11. public function __construct(){
  12. $this->InitConnection_Mod();
  13. return self::$_connection;
  14. }
  15. }
  16. ?>

index.php
  1. <?php
  2. ...
  3. require_once(__MOD__.'DbModule.mod.php');
  4. ...
  5. $DB=new Db_Module();
  6. ...
  7. ?>


No i czy ktoś może wie jak teraz sprawdzić w pliku index.php czy $DB jest poprawnym uchwytem do połączenia z bazą danych?
Oraz kolejne pytanie: jak to zrobić za pomocą try{}catch(){}?
vokiel
Nie wiem po co Ci ten Db_Module skoro nic nie wnosi nowego, jakbyś nie mógł po prostu skorzystać z PDO...
  1. <?php
  2. require_once(__MOD__.'DbModule.mod.php');
  3. try{
  4. $DB=new Db_Module();
  5. } catch (PDOException $e){
  6. echo $e->getMessage();
  7. }
  8. ?>
darko
może tak:

  1. try {
  2. $DB=new Db_Module();
  3. if($DB instanceof PDO) {
  4. //ok
  5. }
  6. else {
  7. throw new Exception("database creation object error");
  8. }
  9. } catch (Exception $e) {
  10. echo 'Caught exception: ', $e->getMessage(), "\n";
  11. }


?
Manwe89
Cytat(vokiel @ 8.10.2009, 11:44:37 ) *
Nie wiem po co Ci ten Db_Module skoro nic nie wnosi nowego, jakbyś nie mógł po prostu skorzystać z PDO...


pokazałem tylko kawałek klasy, żeby nie gmatwać całości smile.gif


Dzięki panowie za pomoc smile.gif
dr_bonzo
Cytat
$DB=new Db_Module();
if($DB instanceof PDO) {
//ok
}

To nie Objective-C - wiec to jest bez sensu. Skoro nie polecial wyjatek to obiekt odpowiedniej klasy sie utworzyl.
darko
dr_bonzo, rzeczywiście, powinno być (cyt. za manual php):

  1. try {
  2. $dbh = new PDO($dsn, $user, $password);
  3. } catch (PDOException $e) {
  4. echo 'Connection failed: ' . $e->getMessage();
  5. }
  6.  

dr_bonzo
Ale to nie dotyczy tylko PDO (tak dla wyjaśnienia, na wszelki wypadek).
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.