В СУБД 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);
|
|
Webmoney Z163628999150, R617151845974
|
12:12
Бред =) Пример убог, так как не раскрывает хотя бы десятой части функциональности класса работы с БД.
$dbh = mysql_connect («localhost», «username», «password»); не нужен, так как у тебя там конструктор и т.д.