Работа с MySQL в PHP

394
03 февраля 2017, 07:21

Если я использую класс для работы с БД, я создаю новый объект этого класса, из которого вызываю функцию для выполнения запроса, я подключаюсь к БД, выполняю запрос, выполняю закрытие подключения. Обрабатываю данные, вывожу на страницу.

По идее - скрипт отработал и исчез.

При повторном запросе с полученной страницы - опять повторять те же самые действия? Или что-то можно сохранить в сессию, чтобы не пересоздавать объект?

Хочется увидеть пример (схему) описанных мною действий в правильном виде.

На разных сайтах пишут по разному, в комментариях много мнений "за" и "против" и не совсем понятно, что из всего правильно, а что нет.

Answer 1

подключаюсь к БД, выполняю запрос, выполняю закрытие подключения.

Немного не так. подключение происходит строго 1 раз, закрытие вообще не нужно

При повторном запросе с полученной страницы - опять повторять те же самые действия?

Да.

Или что-то можно сохранить в сессию, чтобы не пересоздавать объект?

Нет.

Хочется увидеть пример (схему) описанных мною действий в правильном виде.

  • создаешь объект класса. При этом происходит подключение к БД.
  • выполняешь запрос
  • выполняешь запрос
  • выполняешь запрос
  • обрабатываешь данные, выводишь на страницу
Answer 2

Сохранить соеденение, для второго подключения, в PHP не получится и это не нужно. Правильнее сохранять полученые данные не в сессию, а в кэш. Если данные писать в сессию, то они будут доступны только одному пользователю.

Нужно после отработанного запроса записать сериализованные полученные данные в redis, memcached ну или в файл, с каким нибудь именем и при втором запросе сначала посмотреть в кэше, а потом уже лезть в БД.

  • Спросить кэш, если данные есть в нём и они не устарели, то взять данные из кэша.
  • Если данные не взялись из кэша то подключение к БД, запрос.
  • После запроса сериализация и запись результата в кэш.
  • Закрытие соеденения.
READ ALSO
Парсинг сложных прайс-листов xls

Парсинг сложных прайс-листов xls

Товарищи, нужна помощь! Кто-нибудь сталкивался с парсингом прайс-листов в xls? Интересует сам алгоритм и некоторые нюансыХотя бы понять в какую...

421
Вывод данных из связанных таблиц в yii2

Вывод данных из связанных таблиц в yii2

В БД есть три таблицы, свзянанные внешними ключами

938
Относительные ссылки и использование include

Относительные ссылки и использование include

Всем доброго времени суток

394
Перенос с wordpress [требует правки]

Перенос с wordpress [требует правки]

Возможно ли перенести сайт с wordpress на свой движок? И сколько будет примерно стоить?

345