Подскажите пожалуйста правильно ли я реализую транзакцию в 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);