Транзакции в MySQL

В СУБД MySQL имеется возможность выполнения транзакций с таблицами типа InnoDB. Ниже представлен PHP-класс, который позволит использовать в Ваших скриптах этот механизм транзакций.

class Transaction {
var $dbh;

function Transaction($host, $username, $password) {
$this->dbh = mysql_connect($host, $username, $password);
}

function _Transaction() {
mysql_disconnect($this->dbh);
}

function begin() {
mysql_query("BEGIN", $this->dbh);
}

function rollback() {
mysql_query("ROLLBACK", $this->dbh);
}

function commit() {
mysql_query("COMMIT", $this->dbh);
}
}

Вызвать в своем скипте этот класс и выполнить транзакцию можно следующим образом:

$tx =& new Transaction("localhost", "username", "password");
$tx->begin();
$dbh = mysql_connect("localhost", "username", "password");
$result = mysql_query("INSERT ...");
if (!$result) {
$tx->rollback();
} else {
$tx->commit();
}
mysql_disconnect($dbh);
unset($tx);

Поблагодарить автора

One Response to Транзакции в MySQL

  1. Бред =) Пример убог, так как не раскрывает хотя бы десятой части функциональности класса работы с БД.

    $dbh = mysql_connect («localhost», «username», «password»); не нужен, так как у тебя там конструктор и т.д.

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>