Всякий раз, когда теория представляется вам как единственно возможная, это свидетельствует о том, что вы не понимаете ни теорию, ни проблему, которую она призвана решить.
Карл Поппер
Всегда отличное качество и завершённость - http://www.ardismebel.ru/shop/cat4/.
Обычно, когда обновляют или удаляют данные, эти изменения не видны другим клиентам до тех пор, пока транзакция не будет завершена оператором COMMIT.
Однако все изменения, вносимые в файлы вне базы данных, не ведут себя подобным образом. Если удалить файл, он сразу становится недоступным другим клиентам. И если изменить содержимое файла, другие клиенты сразу увидят эти изменения вместо того, чтобы видеть предыдущее содержимое файла, пока транзакция не будет зафиксирована.
Файл примepa:_Phantom- Files/anti/transaction.php
$stmt = $pdo->query("DELETE FROM Screenshots WHERE bug_id = 1234 AND image_id = 1");
unlink('images/screenshot1234-1.jpg1);
// Другие клиенты по-прежнему видят строку в базе данных, // но не файл изображения. $pdo->commit() ;
На практике эти виды аномалий могут быть нечастыми. К тому же в данном примере отрицательный эффект минимальный: отсутствующее изображение — вряд ли редкий случай в веб-приложении. Но в других сценариях последствия могли бы быть серьезными.
Опубликовал vovan666
August 14 2013 07:49:12 ·
0 Комментариев ·
3725 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.