Профессиональное программирование на PHP

Страница 54 из 591


Краткое введение в типовые проекты 57

достаточной для того, чтобы можно было получить доступ ко всем функциям MySQL-расширения в ОО-стиле и несколько увеличить удобство их использования. Ниже приводится первая попытка написания такого класса-оболочки.

class DB_Mysql { protected $user; protected $pass; protected $dbhost; protected $dbname;

protected $dbh; // Дескриптор подключения к базе данных

public function _construct($user, $pass, $dbhost, $dbname) {

$this->user = $user; $this->pass = $pass; $this->dbhost = $dbhost; $this->dbname = $dbname;

}

protected function connect() {

$this->dbh = mysql_pconnect($this->dbhost, $this->user, $this->pass); if(!is_resource($this->dbh)) { throw new Exception;

}

if(!mysql_select_db($this->dbname, $this->dbh)) { throw new Exception;

}

}

public function execute($query) { if(!$this->dbh) { $this->connect();

}

$ret = mysql_query($query, $this->dbh); if(!$ret) {

throw new Exception;

}

else if(!is_resource($ret)) {

return TRUE; } else {

$stmt = new DB_MysqlStatement($this->dbh, $query); $stmt->result = $ret; return $stmt;

}

}

}

Для того чтобы использовать данный интерфейс, требуется только создать новый объект DB_Mysql и инициализировать его с входными параметрами доступа к необходимой базе данных MySQL (имя пользователя, пароль, имя узла и имя базы данных).

$dbh = new DB_Mysql("testuser", "testpass", "localhost", "testdb"); $query = "SELECT * FROM users WHERE name = '".mysql_escape_string($name) ."1" ; $stmt = $dbh->execute($query);




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006