|
|
|
| Прошу помочь решить проблему
необходимо создать временную таблицу которая автоматически удалится при закрытии сессии
создаю таблицу
$sql = ' CREATE TEMPORARY TABLE IF NOT EXISTS '. $dbn .' (
idk INT NOT NULL AUTO_INCREMENT,
idt INT(11) ,
name TEXT(256),
textt TEXT(256),
price INT (11) ,
kolvo INT (11) ,
PRIMARY KEY (idk))';
таблица создаётся, но как только ухожу сос старины создавшей её и пытаюсь редактировать - возникает ошибка что таблица с данным именем не существует, хотя сессия ещё действует | |
|
|
|
|
|
|
|
для: nilsbor
(17.04.2011 в 13:19)
| | Тут вот в чем дело, MySQL и PHP - это разные системы, которые взаимодействуют через сокет или сеть. Сессии у них тоже разные. Для PHP - сессия, это когда браузер посылает cookie с SID сессии, перестанет посылать - сессия разрушается. Для MySQL сессия - это когда установлено соединение с клиентом, закроет клиент соединение - сессия будет разрушена. А когда вы покидаете страницу, соединение с MySQL закрывается. | |
|
|
|
|
|
|
|
для: cheops
(17.04.2011 в 13:30)
| | а как тогда быть
есть ли иное решешение задачи, весь инет облазил
сейчас у меня скрипт работает без временных таблиц, создаю таблицу ро имени php сессии, но приходится каждую неделю удалять пару сотен таблиц | |
|
|
|
|
|
|
|
для: nilsbor
(17.04.2011 в 13:35)
| | Хм... может лучше создать MEMORY-таблицу (она тоже в оперативной памяти будет) и как-то перепроектировать приложение, чтобы для всех сессий использовалась одна таблица? Зачем заводить множество таблиц одинаковой структуры, когда можно создать одну таблицу с столбцом-признаком сессии. Раз в час или сутки удалять устаревшие записи этой таблицы при помощи cron-задания или событий базы данных (Если версия MySQL 5.1 или выше). | |
|
|
|