V
vital
Вобщем-то уже давно сделал для себя простой класс для работы с бд, а сейчас пришло в голову выложить его сюда. Класс - элементарен до ужаса, но такая цель у меня и стояла, что бы работать было максимально просто, без каких-либо заморочек. Он даже скорее может служить шаблоном для развития, нежели готовым решением, но мне нравится и так..
Собственно, вот и все. Вся работа сводится к
Ну и дальше все как всегда, mysql_fetch_array() и иже с ними..
PHP:
<?php
class DB
{
private $connected=false;
private $hwnd=null;
var $dbhost;
var $dbuser;
var $dbpass;
var $dbname;
public function __construct ($dbhost, $dbuser, $dbpass, $dbname) //Собственно конструктор, думаю, очевидно что ему передается. Коннект с бд происходит тут же и устанавливаем флаг что мы коннектед.
{
$this->dbhost=$dbhost;
$this->dbuser=$dbuser;
$this->dbpass=$dbpass;
$this->dbname=$dbname;
$this->connect();
$this->connected=true;
}
public function handle () //Это просто возвращает указатель на текущее соединение, если оно есть. Надо для использования функций типа mysql_error() и нек-х других, которым надо его передавать.
{
if ($this->connected)
{
return $this->hwnd;
}
else
{
return null;
}
}
private function connect () //Ф-я в которой соединяемся с бд... Приват - ибо руками ее трогать не надо. см.ниже
{
if (!$this->connected)
{
$this->hwnd=mysql_connect($this->dbhost,$this->dbuser,$this->dbpass);
mysql_select_db($this->dbname,$this->hwnd);
mysql_query('SET NAMES `windows-1251`'); //Устанавливаетя кодировка.. Можно сделать отдельное свойство, но мне было лень и не надо абсолютно)
$this->connected=true;
}
}
public function query ($query) //Собсно основная ф-я. Передаем запрос, проверка соеденены ли с бд, если нет, то соеденяемся и выполняем запрос, возвращает рез-т.
{
if (!$this->connected)
{
$this->connect();
$this->connected=true;
}
$res=mysql_query($query, $this->hwnd);
return $res;
}
public function disconnect () //Ну это тоже очевидно..
{
if ($this->connected)
{
mysql_close($this->hwnd);
}
}
}
?>
Код:
$db=new DB($dbhost, $dbuser, $dbpass, $dbname);
$sql=$db->query('SELECT * FROM table');