можно ли делать транзакции через HTTP-запросы в Perl? - PullRequest
2 голосов
/ 08 марта 2012

Я делаю веб-приложение, и я хочу сделать так: если пользователю не нравятся изменения или он допустил ошибку, он может откатить изменения и, если ему нравится, сохранить их. Я использую Perl с модулем DBI и MySQL. Сначала я отправляю данные для обновления в другой файл Perl, на этой странице я выполняю обновление и возвращаю поток на первую страницу и показываю изменения пользователю. Поэтому мне интересно, если это возможно, чтобы сохранить или сохранить транзакцию через HTTP-запрос или как сделать транзакцию? Я сделал следующее:

$dbh->{AutoCommit} = 0;
$dbh-do("update ...")

Я начинающий с Perl и DBI, поэтому любой ответ будет оценен

1 Ответ

0 голосов
/ 08 марта 2012

Насколько сложна транзакция? Одна таблица или несколько таблиц и сложные отношения?

Если это одна таблица, для страницы подтверждения может быть намного проще отобразить значения до (DBI) и после (форма), а также выполнить транзакция после 'коммита' оттуда.

Apache :: DBI и другие модули ORM существуют, которые пытаются сохранить соединения с базой данных, но, учитывая, что каждый процесс веб-сервера имеет свое собственное пространство памяти, вы быстро сталкиваетесь с некоторыми довольно сложными проблемами. Я бы посоветовал не новичку.

Я бы также порекомендовал, прежде чем вы зайдете слишком далеко с созданным вручную DBI, взгляните на некоторые из модулей объектно-реляционного отображения. DBIx :: Class является наиболее популярным / активно поддерживаемым.

...