Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP и MySQL блокировка записей в базе

29K
25 октября 2007 года
Hau Ruck
12 / / 25.10.2007
Всем привет! Недавно начал с РНР. Такая проблемма: есть база МайСКЛ с которой работаю несколько человек. интерфейс на РНР. Необходимо сделать так, чтобы когда один из пользователей открывает одну запись базы на редактирование, другие не могли бы открыть ту же запись на редактирование. только на просмотр.
Первое что приходит на ум - создать доп. колонку в базе, содержащую состояние: открыто|закрыто.
Есть ли какие либо средства языка РНР для реализации этого?
244
25 октября 2007 года
UAS
2.0K / / 19.07.2006
Ну а так что мешает при открытии редактирование чего-то заносиь блокировку в БД?
mysql_query();
29K
25 октября 2007 года
Hau Ruck
12 / / 25.10.2007
Цитата: UAS
Ну а так что мешает при открытии редактирование чего-то заносиь блокировку в БД?
mysql_query();



а можно по подробнее?

244
25 октября 2007 года
UAS
2.0K / / 19.07.2006
Ну если я правильно понял что ты хочешь, то просто создавай таблицу, где будет поле "редактируется ли это поле". Что-то типа ALTER TABLE `table` ADD `in_edit` BOOL DEFAULT 0;
Потом как откроют на редактирование, то mysql_query("UPDATE `table` SET `in_edit`=1"); когда закончат, то ставь на 0.
276
25 октября 2007 года
Rebbit
1.1K / / 01.08.2005
Цитата: UAS
Ну если я правильно понял что ты хочешь, то просто создавай таблицу, где будет поле "редактируется ли это поле". Что-то типа ALTER TABLE `table` ADD `in_edit` BOOL DEFAULT 0;
Потом как откроют на редактирование, то mysql_query("UPDATE `table` SET `in_edit`=1"); когда закончат, то ставь на 0.


Не прокатит. Между селектами и апдейтами всеровно промежутки останутся. Кроме того, что если запись не розблокируется ? А такое будет случатся сплош и рядом.
Я в БД олух, но вроде слышал когдато на лекциях толе о блокирующих транзакциях толи о чемто подобном. Не знаю есть ли такое в МайСКЛ.
Я б советовал автору в разделе БД спрашивать. Ета задача должна решатся средствами СУБД, а не РНР.

15
25 октября 2007 года
shaelf
2.7K / / 04.05.2005
В одном проекте мы делали отдельным полем (как было выше сказано) и отслеживали время "галочки". На редактирование отводилось 30 минут. Если раньше - то ессно снималось. По крону запускался скрипт каждые 10 минут, который снимал блокировку с записей у которых дата блокировки была больше 30 минут (время в данном случае абстрактное, кому какое приемлемо, тот такое и поставит).
337
25 октября 2007 года
shine
719 / / 09.06.2006
Транзакции в MySQL: http://mysql.osuosl.org/doc/refman/5.0/en/transactional-commands.html
Ну и в клубе тоже это обсуждалось: http://phpclub.ru/talk/showthread.php?threadid=94419&highlight=%F2%F0%E0%ED%E7%E0%EA%F6%E8%FF
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог