Codeigniter - как избежать кэширования базы данных для сеансов

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

Я также хочу использовать кэширование базы данных для ускорения общих запросов к БД (например, «получить категории» поскольку большая часть содержимого БД не будет регулярно меняться), поэтому я включил этот параметр:

$db['development']['cache_on'] = TRUE; 
//where 'development' is my environment

В результате я обнаружил, что содержимое сеанса не обновляется, например, по этому запросу:

$this->basket_contents = array_values($this->session->userdata('basket_contents'));

Кроме того, Я пробовал это:

$this->db->cache_off();

... перед запросом сеанса, но это не решает проблему (я предполагаю, потому что это не прямой запрос к БД).

Мои настройки сеанса следующие:

$config['sess_cookie_name']     = 'str_session';
$config['sess_expiration']      = 7200;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

Могу ли я предотвратить кеширование запросов к БД, связанных с сессией? Или предотвратить кеширование определенных таблиц?

ИЛИ есть другое (вероятно, очевидное) решение, о котором я не думал?

Заранее спасибо.

6
задан Ade 12 December 2010 в 22:51
поделиться