1) Помогите освоить! =) Никак не пойму как применять транзакции из PHP-сценария… Функции может какие?
2) И что вообще использовать? "START TRANSACTION;" или "BEGIN"? В разных книгах по-разному… В одной вообще mysqli используют… =(
3) И третий вопрос, просто из любопытства! Зачем нужен "ROLLBACK;"? Если заведомо известно, что перечень команд либо выполнится полностью и будет сохранен COMMIT-ом, либо откатится без помощи ROLLBACK? Кто будет устанавливать соединения чтобы запросить и откатить? О_о Я базы данных начал узнавать весьма недавно и всгда предполагал, что соединение с БД открывается на маленький промежуток времени, чтобы быстро запросить и закрыть и так несколько раз на протяжении сценария… Или лучше держать его открытым? Что дает больше нагрузки?
17 июля 2009 в 3:02
>> именно для таких случаев и нужны транзакции
>> тьфу
>> не тебе
<< Именно для таких случаев и нужны транзакции…
16 июля 2009 в 10:02
Антон Щиров +1
16 июля 2009 в 2:01
> И что вообще использовать?
Для начала движок InnoDB или BDB – только там есть поддержка транзакций
> START TRANSACTION;" или "BEGIN"
Пофигу. Просто с появлением процедур в доке написано, что BEGIN устарело и нужно юзать START TRANSACTION
> Зачем нужен "ROLLBACK;"?
Вы последовательно, в три таблицы вставляете данные. Две записи вставили, а при вставке третьей произошла ошибка. Вот тут и нужен ROLLBACK для отмены предыдущих двух вставок.
> , что соединение с БД открывается на маленький промежуток времени,
Создание нового соединения довольно трудоемкая операция. Поэтому, обычно, на весь скрипт (в смысле на одну страничку) делают одно соединение.