|
|
|
| Добрый вечер.
Задумался над количеством запросов к бд, решил поинтересоваться у вас, какой метод лучше.
На моем сайте реализована регистрация посетителей.
Информацию о зарегистрированном пользователе к примеру его Имя Фамилию или Возраст достаю из базы данных своими функциями. К примеру:
<?php
// $id = номер пользователя
echo user_first_name($id);
echo user_last_name($id);
echo user_age($id);
?>
|
Данная информация мелькает частенько на страницах сайта.
Подумал написать функцию которая бы при входе пользователя на сайт записывала его данные в сессию, и данные мы уже брали из сессии. К примеру
<?php
// На всех страницах сайта
function user_session_info($id){
if(!isset($_SESSION['user_info'][$id])) {
$_SESSION['user_info'][$id]['first_name'] = user_first_name($id);
$_SESSION['user_info'][$id]['last_name'] = user_last_name($id);
$_SESSION['user_info'][$id]['age'] = user_age($id);
}
}
?>
|
Когда мене нужна будет информация о пользователе буду получать из сессии user_info а не БД.
Возможно это бредовая идея но интересно стороннее мнение, какой вариант лучше и чем чревато использование сессий в данном случае? | |
|
|
|
|
|
|
|
для: ZetRider
(12.03.2012 в 22:42)
| | Возможно это бредовая идея но интересно
этой идее "сто лет в обед", это классика жанра, нет ни одной книги по РНР в которой не описана эта ситуация
как у вас с книгами? | |
|
|
|
|
|
|
|
для: Valick
(12.03.2012 в 23:09)
| | Valick, с книгами все в порядке,
php 4 - Д.Котеров
php 5 - Д.Н. Колисниченко
php 5 - А.В. Олищук, А.Н. Чаплыгин
видимо не обращал внимание на этот метод в то время когда их читал, сейчас же больше помогает поиск в интернете, на много быстрее.
Гость, есть такая функция но данные не кешируются, подскажите пожалуйста как правильно мне найти информацию по кешированию данных вызываемой функции. | |
|
|
|
|
|
|
|
для: ZetRider
(13.03.2012 в 08:40)
| | есть такая функция но данные не кешируются
а нафиг она нужна? читайте книги там все описано
данные заносятся в сессию один раз при авторизации | |
|
|
|
|
|
|
|
для: ZetRider
(12.03.2012 в 22:42)
| | Более того - вместо кучи функций с получением имени, возраста и т.д. гораздо лучше сделать одну которая будет возвращать массив/объект со всеми данными по пользователю одним запросом к БД. (Хотя это не всегда верно).
Правда возможно у вас так и сделано и результат этой функции кешируется (хотя бы на время выполнения скрипта), а user_first_name, user_last_name, user_age лишь берут из кеша нужную информацию. Если у вас все так - то все в порядке. | |
|
|
|