Если у кого есть свободная минутка подскажите пожалуйста почему не работает код. Заранее благодарю.
class DB{
static $obj = NULL;
private $dbh;
static function pdo()
{
if(self::$obj == NULL) self::$obj = new DB;
return self::$obj->dbh;
}
public function __construct($dsn)
{
$this->dbh = new PDO($dsn, USER, PASSWORD);
$this->dbh->exec("set names utf8");
}
private function __destruct(){
$this->dbh = NULL;
}
}
$dsn='mysql:host='.HOST.';dbname='.DATABASE; // тут всё ок
new DB($dsn);
$query="SELECT * from users";
$res=DB::pdo->query($query); // Parse error
if($res->fetch(PDO::FETCH_ASSOC)) print 'hello world';
Спустя 9 минут, 55 секунд (30.09.2010 - 17:01) sergeiss написал(а):
Цитата (web-dev @ 30.09.2010 - 17:51) |
new DB($dsn); |
Результат выполнения этого назначения надо записать куда-нибудь, в объект (в переменную). И уже с ним работать.
Спустя 34 минуты, 54 секунды (30.09.2010 - 17:36) web-dev написал(а):
На самом деле у меня код $res=DB::pdo->query($query); находится в методе класса Func и тогда мне надо будет передавать объект класса DB в этот метод, а методов будет много и в каждый его передавать как-то не красиво. Я хочу чтоб что запрос вызывать через DB::pdo-> из любого метода не передавая туда объект.
Спустя 2 минуты, 48 секунд (30.09.2010 - 17:38) web-dev написал(а):
Цитата (sergeiss @ 30.09.2010 - 18:01) | ||
Результат выполнения этого назначения надо записать куда-нибудь, в объект (в переменную). И уже с ним работать. |
он сохраняется в private $dbh
Спустя 1 час, 25 минут, 28 секунд (30.09.2010 - 19:04) linker написал(а):
$res = DB::pdo()->query($query);
Спустя 15 часов, 46 минут, 25 секунд (1.10.2010 - 10:50) web-dev написал(а):
Цитата (linker @ 30.09.2010 - 20:04) |
$res = DB::pdo()->query($query); |
- Идиот!
- Согласен
_____________
IT - это такая область, что приходится постоянно бежать вперед, чтобы оставаться на месте.