[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Транзакции в MySQLi
yuap
Здравствуйте!

Подскажите пожалуйста правильно ли я реализую транзакцию в MySQLi?

Например существует две таблице account (таблица расчетного счета) и cash (таблица кассы) мы снимаем деньги с расчетного счета в кассу



$db = mysqli_connect('localhost', '', '', '');
mysqli_query($db, 'SET NAMES utf8');

function transfer($summ) {

global $db;

mysqli_autocommit($db, FALSE);

try {

// Отнимаем деньги с Р.С.
$t1 = "UPDATE account SET summ = summ - '%s'";
$sql1 = sprintf($t1,
mysql_real_escape_string($summ)
);

$result1 = mysqli_query($db, $sql1);

// ПРОВЕРКА
if(!$result1) {
throw new Exception();
}


// Прибавляем деньги в КАССУ
$t2 = "UPDATE cash SET summ = summ + '%s'";
$sql2 = sprintf($t2,
mysql_real_escape_string($summ)
);

$result2 = mysqli_query($db, $sql2);

// ПРОВЕРКА
if(!$result2) {
throw new Exception();
}


}

catch(Exception $e) {
mysqli_rollback($db);
}

mysqli_commit($db);

}


// Снимаем деньги с расчетного счета в кассу 100 руб.
transfer(100);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.