czytam książkę i na podstawie tej książki stworzyłem sobie klasę obsługującą bazę. Tylko pojawia się pewien problem, a mianowicie do tej klasy jest załączany taki plik jak DB.php i później z tego pliku są używane metody. Pytanie moje brzmi czy to DB.php trzeba samemu napisać czy już jest gdzieś gotowe? Autorzy książki wykorzystują PostgreSQL, a ja chce wykorzystać MySQL. Znalazłem taki link http://pear.php.net/manual/pl/package.data....db.iserror.php i tu są opisane te metody z których korzystam.
Może zaprezentuje kawałek kodu:
<?php require_once('config.php'); require_once('DB.php'); Class Datebase{ private $conn; private function __construct($dsn=null){ if($dsn == null){ $dsn = $cfg['db']['dsn']; } $this->conn = DB::connect($dsn); if(DB::isError($this->conn)){ throw new Exception($this->conn->getMessage(), $this->conn->getCode()); } $this->conn->setFetchMode(DB_FETCHMODE_ASSOC); } $objDB = new Datebase(); } return $objDB; } function __destruct(){ $this->conn->disconnect(); } //Zwraca obiekt DB_result function select($sql){ $result = $this->conn->query($sql); if(DB::isError($result)){ throw new Exception($result->getMessage(), $result->getCode()); } return $result; } //Zwraca dwuwymiarową tablicę asocjacyjną function getAll($sql){ $result = $this->conn->getAll($sql); if(DB::isError($result)){ throw new Exception($result->getMessage(), $result->getCode()); } return $result; } ...
i teraz jest np. DB::connect, DB::isError, skąd się bierze $this->conn->query($sql)? Zbytnio tego nie rozumiem. Przykładowo, gdzie jest napisana metoda getMessage()? Proszę o jakieś wyjaśnienie bo widzę, że to jest ciekawe rozwiązanie i odciąża serwer.