#php #mysql #session #codeigniter
#php #mysql #сессия #codeigniter
Вопрос:
Я уже закончил создание корзины покупок в codeigniter, используя класс корзины покупок. но данные были сохранены в сеансе в массиве, тогда я хочу сохранить массив сеанса в базе данных user_ordered. с идентификатором пользователя, идентификатором продукта, количеством. или другие значения.
Комментарии:
1. Я не могу точно сказать, о чем вы здесь спрашиваете… Не могли бы вы немного уточнить?
2. Вы уже пробовали что-нибудь, например, чтение
$this->cart->contents()
? Можете ли вы сформулировать это в форме вопроса и объяснить реальную проблему, что именно вы пытаетесь сделать, какие идеи и / или код вы пробовали, если таковые имеются ?… Это должно происходить каждый раз, когда товар добавляется или только при оформлении заказа?3. когда пользователь собирается оформить заказ, я хочу сохранить в базе данных.
Ответ №1:
Вы можете легко сохранить свой массив сеансов в базе данных с помощью CodeIgniter. Для хранения сеансов необходимо сначала создать таблицу базы данных для этой цели. Вот базовый прототип (для MySQL), требуемый классом сеанса:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
По умолчанию вызывается таблица ci_sessions
, но вы можете назвать ее как угодно, если вы обновите application/config/config.php
файл так, чтобы он содержал выбранное вами имя. После создания таблицы базы данных вы можете включить опцию базы данных в вашем config.php
файле следующим образом:
$config['sess_use_database'] = TRUE;
После включения класс Session будет хранить данные сеанса в БД.
Убедитесь, что вы также указали имя таблицы в своем конфигурационном файле:
$config['sess_table_name'] = 'ci_sessions';
Те же инструкции можно найти в документации codeigniter.