powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / блокировки
11 сообщений из 11, страница 1 из 1
блокировки
    #32785215
Spooki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

Хотел узнать, как в php блокировать записи?
Смысл таков.
Селект вернул запись, скрипт отработал и закрылся.
Пользователь редактирует в браузере эту запись ну скажем долго.
В это время другой пользователь решил потрогать ту запись, которую долго трогает первый юзер(на самом деле он правит параметры формы). Быстро все сделал и проапдейтил ее раньше первого.

Какими способами, возможно, не дать редактировать запись второму пользователю, если первый пользователь ее пытается обновить, а может и не обновить, а просто посмотреть и не обновлять?

БД - mssql, можно и для mysql совет дать.
...
Рейтинг: 0 / 0
блокировки
    #32785265
taj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если б ты ADO.NET использовал, я бы подсказал...
Насчет PHP не знаю, никогда не делал. То что ты хочешь - это pessimistic concurrency, почитай про это мануал MSSQL (Books Online который)
...
Рейтинг: 0 / 0
блокировки
    #32786104
Spooki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, почитаю.
...
Рейтинг: 0 / 0
блокировки
    #32789665
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РНР тут не причем. Читай про транзакции, уровни изоляции транзакций и т.п. Хотя если не ошибаюсь в mySql до 4 версии с транзакциями дело обстоит тяжело.
...
Рейтинг: 0 / 0
блокировки
    #32791122
Spooki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hhaРНР тут не причем. Читай про транзакции, уровни изоляции транзакций и т.п. Хотя если не ошибаюсь в mySql до 4 версии с транзакциями дело обстоит тяжело.

Мне кажется уровни изоляции и транзакции тут особенно и не причем.
Я тут почитал про блокировки и мне понравился вариант с датой, то есть дату чекерить и если не совпадает с изначальной, то облом.
...
Рейтинг: 0 / 0
блокировки
    #32791377
Фотография Alex Rootoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Принцип может бить таков (для реализации в лоб). Например для аукциона. Если ктото быстро купил вещь, то кортеж с инфой про вещь переносится в иное представление или некоторому атрибуту прежставления присвояется значение продано. Если иной юзер попробует купить ету вещь, то у него ето не получится, так как скрипт проверит доступна ли ета вещь в момент запроса.



With best regards Alex Rootoff
...
Рейтинг: 0 / 0
блокировки
    #32791400
Фотография Alex Rootoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если говорить о колективной работе над одной записю, то можно воспользоватся временными штампами. В форме ставиш поле, что отвечает за время последней модификации. Если ктото отправил форму с устаревшим штампом(ктото уже подредактировал запись), то ему отправляется новая версия записи. Если штамп прийнятый от пользователя и с базы совпадают, можна апдейтить базу.


With best regards Alex Rootoff
...
Рейтинг: 0 / 0
блокировки
    #32791616
Spooki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex RootoffЕсли говорить о колективной работе над одной записю, то можно воспользоватся временными штампами. В форме ставиш поле, что отвечает за время последней модификации. Если ктото отправил форму с устаревшим штампом(ктото уже подредактировал запись), то ему отправляется новая версия записи. Если штамп прийнятый от пользователя и с базы совпадают, можна апдейтить базу.


With best regards Alex Rootoff

Да примерно так. Аля как с датой.
...
Рейтинг: 0 / 0
блокировки
    #32791910
swept
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык, для этого и существует тип timestamp
...
Рейтинг: 0 / 0
блокировки
    #32792905
Фотография hell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пессиместическое блокирование в php не очень то пройдет. Во первых, сессия не закроется только если использовать pconnect, да и там нет гарантии, что сессия не закроется, и в след. раз не создастся новая.

Можно как вариант считать md5 от всей записи, при обработке данных считывать строку опять и проверять md5 и если не совпадает, говорить юзеру что данные уже кто-то изменил пока он думал, и показать различия, предоставив ему думать, обновлять все таки запись или нет
...
Рейтинг: 0 / 0
блокировки
    #32792907
Фотография hell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, если данные специально делаются для web можно например добавить свой механизм блокировок со специальными stored procedure для блокировки и де блокировки, и таймаут например полчаса на блокировки.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / блокировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]