yuriykaskoff
Новичок
Одновременный доступ к базе нескольких скриптов
Добрый день уважаемые знатоки. Подскажите, как решить такой вопрос. Есть база, в ней таблица примерно такая
Id name status
1 Вася 1
2 Петя 1
3 Вася 1
4 Вася 1
Через планировщик в windows7 и php я запускаю выполнение скрипта php и выходит типо cron. Делает скрипт например вот что. Во всех name заменяет букву “a” на “o”. В запросе указываю, что бы выбирал одну запись пока status = 1 и заменял на 0 если уже обратился. По идее следующие скрипты уже не должны обращаться к этой записи. Когда я запускаю один скрипт то все отлично, а когда несколько (одновременно) то например два скрипта могу обратиться к одной и той же записи и сначала один поищет “a” и если найдет то заменит, а потом второй в той же записи ищет. Нужно как то сделать, что бы если один скрипт уже обратился к записи, то все следующие уже не обращались к ней.
Запрос в скрипте примерно такой $qw="SELECT * FROM users WHERE flag=1 LIMIT 1";. И сразу же после этого запроса делаю вот этот $qu="UPDATE users SET flag=0 WHERE name='".$adr."'";, здесь поля и таблица отличаются от тех что я нарисовал но это не важно, что бы другие не могли повторять чтение выбранной уже записи. Но увы иногда два скрипта или более читаю одну и ту же запись. Как сделать что бы если один уже выбрал запись то остальные никак ее не могли выбрать?
Добрый день уважаемые знатоки. Подскажите, как решить такой вопрос. Есть база, в ней таблица примерно такая
Id name status
1 Вася 1
2 Петя 1
3 Вася 1
4 Вася 1
Через планировщик в windows7 и php я запускаю выполнение скрипта php и выходит типо cron. Делает скрипт например вот что. Во всех name заменяет букву “a” на “o”. В запросе указываю, что бы выбирал одну запись пока status = 1 и заменял на 0 если уже обратился. По идее следующие скрипты уже не должны обращаться к этой записи. Когда я запускаю один скрипт то все отлично, а когда несколько (одновременно) то например два скрипта могу обратиться к одной и той же записи и сначала один поищет “a” и если найдет то заменит, а потом второй в той же записи ищет. Нужно как то сделать, что бы если один скрипт уже обратился к записи, то все следующие уже не обращались к ней.
Запрос в скрипте примерно такой $qw="SELECT * FROM users WHERE flag=1 LIMIT 1";. И сразу же после этого запроса делаю вот этот $qu="UPDATE users SET flag=0 WHERE name='".$adr."'";, здесь поля и таблица отличаются от тех что я нарисовал но это не важно, что бы другие не могли повторять чтение выбранной уже записи. Но увы иногда два скрипта или более читаю одну и ту же запись. Как сделать что бы если один уже выбрал запись то остальные никак ее не могли выбрать?