Class PDO
- Szczegóły
- Kategoria: PDO
- Opublikowano: piątek, 26, kwiecień 2013 18:32
- Super User
- Odsłony: 64859
Class PDO część 1
Połączenie z bazą danych
Class DBBER databaseClass.php by Adam Berger is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Unported License.
W oparciu o utwór dostępny pod adresem www.joomla-cms.com.pl
Z racji tego że coraz bardziej popularna staje się biblioteka PDO postanowiłem zademonstrować jej działanie, a przy okazji poszerzyć swoją wiedzę na temat działania PDO. Nie będę was zanudzał regułkami choć dobrze je znać, po więcej odsyłam na Wikibooks http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO.
Cel jaki założyłem to zrobić bazę(podstawę) pod przyszłe projekty jakie będę wykonywał. Czyli tak rejestracja, logowanie, przypomnienie hasła, sesja no i jakaś klasa np. chat do testowania tego co powstanie. Chciałbym też przetestować działanie klas bez dziedziczenia żeby każda z nich była jakby osobną. Dane z klas chciałbym przekazywać w konstruktorze, a potem dopiero odwoływać się do nich. Założenie takie wzieło się z tąd, że prawdopodobnie wpłynie to na szybkość działania całości. Co o tym sądzicie, a może już ktoś testował takie rozwiązanie. Zaczniemy od połączenia z bazą danych. I tu już musiałem pomyśleć o działaniu jakie chcę osiągnąć. Trzeba tak ustawić połączenie żeby w innych klasach można było przypisać je do konstruktora. Biblioteka PDO jest tak elastyczna że raczej nie będzie z tym problemów. Pozostaje jeszcze ustawić prefiks do nazwy tabel bazy danych . I to tyle.
Cały projekt razem z grafiką chciałbym żeby się wyświetlał w przedziale 0,05 do 0,18 sekundy.
Teraz zademonstruję dokładnie o co mi chodzi.
databaseClass.php
class DBBER extends PDO { private $engine = 'mysql'; private $host = 'localhost'; private $port = 3306; private $database = 'pdo'; private $user = 'root'; private $pass = ''; // password private $dns; private $DbPrefix = 'prk_'; public function __construct(){ try{ if(!empty($this->database)){ $this->dns = $this->engine.':host='.$this->host.';port='.$this->port.';dbname='.$this->database.';'; parent::__construct($this->dns, $this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'')); } }catch(PDOException $e){ echo 'The connection could not be established. '.$e->getMessage().' '.strval($e->getCode()).' '.$e->getFile().' '. $e->getTrace().' '.strval($e->getLine()).' '.$e->getPrevious(); } } public function dbprefix() { return $this->DbPrefix; } }
Komentarze