Объектно-ориентированное программирование
В данной статье я вам покажу класс для работы с MySQLi
Вижу много тут стало тем типо ООП то ООП се и на самом деле многие даже близко элементарные классы функции каскады даже не знают как пи шиться и для чего они нужны
За то говорят ООП так серьезно даже сами верят в свой говно код.
PS. Не в обиду не кому конечно! просто подучите немного почитайте вам же это поможет!
Я конечно не горжусь и не хвастаюсь тем что я знаю прекрасно все языки и стили программирования но и скажу так знаю тоже не мало. Короче меньше слов больше дела, и так начнем.
Зы. Это только пример, тут нет не отключения не отчисти памяти!
В данной статье я вам покажу класс для работы с MySQLi
Вижу много тут стало тем типо ООП то ООП се и на самом деле многие даже близко элементарные классы функции каскады даже не знают как пи шиться и для чего они нужны
За то говорят ООП так серьезно даже сами верят в свой говно код.
PS. Не в обиду не кому конечно! просто подучите немного почитайте вам же это поможет!
Я конечно не горжусь и не хвастаюсь тем что я знаю прекрасно все языки и стили программирования но и скажу так знаю тоже не мало. Короче меньше слов больше дела, и так начнем.
<?PHP
//////////////////////////////////////////////////////////
$dbOptions = array(
'db_host' => '', // HOST подключения обычно "localhost"
'db_user' => '', // Имя пользователя
'db_pass' => '', // Пароль пользователя
'db_name' => '' // Название базы данных
);
//////////////////////////////////////////////////////////
// Полетели;)
class db {
private static $instance;
private $MySQLi;
// Конструктор класса db
private function __construct(array $dbOptions){
// Подключение к серверу MySQL
$this->MySQLi = @ new mysqli($dbOptions['db_host'],
$dbOptions['db_user'],
$dbOptions['db_pass'],
$dbOptions['db_name']
);
// Обработка подключения на сбои
if(mysqli_connect_errno()):
throw new Exception('Ошибка базы данных.');
endif;
// Кодировка по умолчанию
$this->MySQLi->set_charset("utf8");
}
// Осуществляем безопасный вызов
public static function init(array $dbOptions){
if(self::$instance instanceof self):
return false;
endif;
self::$instance = new self($dbOptions);
}
// Кто знает тот поймет
public static function getMySQLiObject(){
return self::$instance->MySQLi;
}
// Посылаем запрос в БД
public static function query($q){
return self::$instance->MySQLi->query($q);
}
// Присекам все попытки SQL Injection
public static function esc($str){
return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
}
}
// Подключение
db::init($dbOptions);
// Запрос
$name = db::query("SELECT `ЯЧЕЙКА` FROM `ТАБЛИЦА` WHERE `ЯЧЕЙКА`='ДАННЫЕ'");
$base = $name->fetch_object();
echo $base->ЯЧЕЙКА;
//////////////////////////////////////////////////////////
$dbOptions = array(
'db_host' => '', // HOST подключения обычно "localhost"
'db_user' => '', // Имя пользователя
'db_pass' => '', // Пароль пользователя
'db_name' => '' // Название базы данных
);
//////////////////////////////////////////////////////////
// Полетели;)
class db {
private static $instance;
private $MySQLi;
// Конструктор класса db
private function __construct(array $dbOptions){
// Подключение к серверу MySQL
$this->MySQLi = @ new mysqli($dbOptions['db_host'],
$dbOptions['db_user'],
$dbOptions['db_pass'],
$dbOptions['db_name']
);
// Обработка подключения на сбои
if(mysqli_connect_errno()):
throw new Exception('Ошибка базы данных.');
endif;
// Кодировка по умолчанию
$this->MySQLi->set_charset("utf8");
}
// Осуществляем безопасный вызов
public static function init(array $dbOptions){
if(self::$instance instanceof self):
return false;
endif;
self::$instance = new self($dbOptions);
}
// Кто знает тот поймет
public static function getMySQLiObject(){
return self::$instance->MySQLi;
}
// Посылаем запрос в БД
public static function query($q){
return self::$instance->MySQLi->query($q);
}
// Присекам все попытки SQL Injection
public static function esc($str){
return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
}
}
// Подключение
db::init($dbOptions);
// Запрос
$name = db::query("SELECT `ЯЧЕЙКА` FROM `ТАБЛИЦА` WHERE `ЯЧЕЙКА`='ДАННЫЕ'");
$base = $name->fetch_object();
echo $base->ЯЧЕЙКА;
Зы. Это только пример, тут нет не отключения не отчисти памяти!
6 комментарии
0 загрузки
Детали
- Первый релиз 03 авг 2012
- Последнее обновление 03 авг 2026
- Документация Есть
- Содержимое файлов Исходные файлы
- Всего товаров 8
- Рейтинг (0)
- Регистрация 05 апр 2011
- Уровень 0
- Пользователь подтверждён Да
- Телефон подтверждён Нет
- Email подтверждён Нет

Alex
- 09 окт 2012это паблик
я встречал похожее. очень сильно похожее когда искал готовое решение. я остановился на DBSimple
kirill
- 04 авг 2012Rufus,
наверно)
Rufus
- 04 авг 2012kirill,
Значит я плохо читал(
kirill
- 04 авг 2012Это показательный класс и не доделаны я написал об этом)
Rufus
- 03 авг 2012Хм... Что-то мне подсказывает, что класс был написан для понту, абы дать понять что ООП кто-то, когда-то видел. На практике этот класс будет работать медленно, а многие обращения через себя в припрыжку будут только основой...
Информативно, исключения именно для этого и созданы)
Вот скажи мне, тупому дигенерату, зачем нам конструктор и деструктор, если мы не обьявляем экземпляр класса? А просто дергаем его как говно...
При 10и запросах это равносильно созданию 10ти экземпляров, а скорость сам понимаешь юудет не фонтан...
Если не веришь, то давай проведем тест, я свой класс из магазина вытяну, а ты этот и сделаем на одном и том-же сервере аналогичные запросы, даже давай идентичные. Готов тягаться на пиво, что твой класс будет вести себя как черепаха, а памяти он сожрет довольно таки не мало(
Я сейчас за минуту напишу аналог)
class rufus_sql extends MySQLi{
}
Готово) Ну и полиморфизм рулит)
Как работать внутри класса? Self и parent в помощь)