[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переподключение в синглтоне
Страницы: 1, 2
Invis1ble
ABC
В данном случае, если не ошибаюсь (не доводилось ни разу работать напрямую с MySQLi), если ты будешь напрямую вызывать конструктор - то будешь плодить новые подключения, т.е. тебе самому придется следить за этим.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

GET
Invis1ble

А зачем он там нужен конструктор?

class my
{
public static $sql;//объект подключения
public static function connect()
{
self::$sql = new mysqli('localhost', 'root', '12345', 'db');
if (!self::$sql->connect_errno)
{
if(self::$sql->character_set_name()!=='utf8')self::$sql->set_charset('utf8');//проверяем кодировку
}
else trigger_error('CONNECT: '.self::$sql->connect_errno,512);
}
}


my::connect();// на index.php во время инициализации - создаем объет подключения

my::$sql->query("BEGIN");


Что плохого в этом просто подходе? Ну + еще будут методы - обертки всякие - SELECT, COUNT...

Каждый раз при запросе в БД будет использоваться один и тот же объект my::$sql

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Invis1ble
Цитата
Что плохого в этом просто подходе?

А если подключение не нужно? Все равно коннектиться будешь при каждом запросе? А теперь покажи мне, как ты собираешься определять, было ли уже установлено ранее соединение или надо создавать новое? wink.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

GET
Цитата
А если подключение не нужно? Все равно коннектиться будешь при каждом запросе?

Invis1ble

Но у меня на каждой странице есть запрос в БД.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Invis1ble
Цитата
Но у меня на каждой странице есть запрос в БД.

То есть ты думаешь только в контексте конкретного проекта, находящегося на определенной точке своего развития smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

GET
Invis1ble

Все я все понял...AJAX запросы будут создавать ненужные подключение, как пример. Все таки придется как-то придумать автосоздовать подключение и проверять его. Ну посижу поизобретаю велосипед. хотя он у меня и был всегда подключен этот синглтон до вчерашнего дня, но не совсем оправдано.

Спасибо.

Аж настроение все испортилось.



_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Цитата
А теперь покажи мне, как ты собираешься определять, было ли уже установлено ранее соединение или надо создавать новое?


Не пойму эту фразу. Если успешно было

Цитата
my::connect();// на  index.php во время инициализации - создаем объет подключения


Значит подключение становлено

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Invis1ble
Цитата
Все таки придется как-то придумать автосоздовать подключение и проверять его.
Invis1ble
Цитата (ABC @ 26.01.2014 - 08:38)
Цитата
А теперь покажи мне, как ты собираешься определять, было ли уже установлено ранее соединение или надо создавать новое?


Не пойму эту фразу. Если успешно было

Цитата
my::connect();// на  index.php во время инициализации - создаем объет подключения


Значит подключение становлено

если ты не будешь на каждый чих запуск кода создавать подключение в index.php, то тебе надо будет как-то определить, нужно ли коннектиться (например, в каком-то модуле коннект уже мог быть установлен).

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

GET
Invis1ble

Но вот не хочу тебя доставать всякими вопросам дурацкими, но специально сейчас перепроверил. У меня реально каждый раз хоть один да делается запрос в БД. Даже для AJAX запросов.

Я понял в чем дело и вижу какие преимущества есть при таком подходе, но также вижу постоянные ненужные проверки на наличие коннекта (объекта).

Я не спорю, так мысли вслух.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Нет ну нужно конечно ставить (оставить) синглтон, с ним намного удобнее, особенно прогнозируя вперед.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Все вопрос решился, добавление строки:

if(self::$sql===NULL)self::connect();


в метод query.

Всем спасибо, еще раз!

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.