singlepost

PHP + MySQL (Три вопроса по транзакциям) << На главную или назад  

1) Помогите освоить! =) Никак не пойму как применять транзакции из PHP-сценария… :( Функции может какие?

2) И что вообще использовать? "START TRANSACTION;" или "BEGIN"? В разных книгах по-разному… В одной вообще mysqli используют… =(

3) И третий вопрос, просто из любопытства! Зачем нужен "ROLLBACK;"? Если заведомо известно, что перечень команд либо выполнится полностью и будет сохранен COMMIT-ом, либо откатится без помощи ROLLBACK? Кто будет устанавливать соединения чтобы запросить и откатить? О_о Я базы данных начал узнавать весьма недавно и всгда предполагал, что соединение с БД открывается на маленький промежуток времени, чтобы быстро запросить и закрыть и так несколько раз на протяжении сценария… Или лучше держать его открытым? Что дает больше нагрузки?

6 ответов в теме “PHP + MySQL (Три вопроса по транзакциям)”

  1. 3
    Владимир Муромский ответил:

    >> именно для таких случаев и нужны транзакции
    >> тьфу
    >> не тебе
    << Именно для таких случаев и нужны транзакции…

  2. 2
    Кирилл Быков ответил:

    Антон Щиров +1

  3. 1
    Антон Щиров ответил:

    > И что вообще использовать?
    Для начала движок InnoDB или BDB – только там есть поддержка транзакций

    > START TRANSACTION;" или "BEGIN"
    Пофигу. Просто с появлением процедур в доке написано, что BEGIN устарело и нужно юзать START TRANSACTION

    > Зачем нужен "ROLLBACK;"?
    Вы последовательно, в три таблицы вставляете данные. Две записи вставили, а при вставке третьей произошла ошибка. Вот тут и нужен ROLLBACK для отмены предыдущих двух вставок.

    > , что соединение с БД открывается на маленький промежуток времени,
    Создание нового соединения довольно трудоемкая операция. Поэтому, обычно, на весь скрипт (в смысле на одну страничку) делают одно соединение.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.