Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL: временная таблица исчезает до завершения сессии
 
 автор: nilsbor   (17.04.2011 в 13:19)   письмо автору
 
 

Прошу помочь решить проблему

необходимо создать временную таблицу которая автоматически удалится при закрытии сессии

создаю таблицу

$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))';


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

  Ответить  
 
 автор: cheops   (17.04.2011 в 13:30)   письмо автору
 
   для: nilsbor   (17.04.2011 в 13:19)
 

Тут вот в чем дело, MySQL и PHP - это разные системы, которые взаимодействуют через сокет или сеть. Сессии у них тоже разные. Для PHP - сессия, это когда браузер посылает cookie с SID сессии, перестанет посылать - сессия разрушается. Для MySQL сессия - это когда установлено соединение с клиентом, закроет клиент соединение - сессия будет разрушена. А когда вы покидаете страницу, соединение с MySQL закрывается.

  Ответить  
 
 автор: nilsbor   (17.04.2011 в 13:35)   письмо автору
 
   для: cheops   (17.04.2011 в 13:30)
 

а как тогда быть
есть ли иное решешение задачи, весь инет облазил
сейчас у меня скрипт работает без временных таблиц, создаю таблицу ро имени php сессии, но приходится каждую неделю удалять пару сотен таблиц

  Ответить  
 
 автор: cheops   (17.04.2011 в 14:19)   письмо автору
 
   для: nilsbor   (17.04.2011 в 13:35)
 

Хм... может лучше создать MEMORY-таблицу (она тоже в оперативной памяти будет) и как-то перепроектировать приложение, чтобы для всех сессий использовалась одна таблица? Зачем заводить множество таблиц одинаковой структуры, когда можно создать одну таблицу с столбцом-признаком сессии. Раз в час или сутки удалять устаревшие записи этой таблицы при помощи cron-задания или событий базы данных (Если версия MySQL 5.1 или выше).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования