Если расширение PHP mysql предположительно не поддерживает транзакции, такие как mysqli, почему я вижу людей, использующих его для транзакций в Интернете?

Я читал о транзакциях mysql и у меня сложилось впечатление, что для создания транзакций приходилось использовать либо mysqli, либо PDO. Тем не менее, я вижу повсюду примеры обмена стеками и другие сайты, которые используют расширение mysql, например:

mysql_query("START TRANSACTION");
$rollback=0

if (!mysql_query($query1)){
$rollback=1
}

if (!mysql_query($query2)){
$rollback=1
}

if (!mysql_query($query3)){
$rollback=1
}

if ($rollback == 1){
mysql_query("ROLLBACK");
}
else{
mysql_query("COMMIT");
}

В чем разница между этим способом и использованием «специальных» специфических для mysqli функций mysqli :: rollback и mysqli :: commit ?

Кроме того, что произойдет, если произойдет сбой скрипта php (IE, мой сервер приложений выйдет из строя и т. Д.), Будет ли сервер БД автоматически откатить транзакцию после установленного периода времени?

Аналогично, что произойдет, если сервер БД выйдет из строя до того, как mysql_query ( "СОВЕРШИТЬ")? Будет ли транзакция «откатана»?

Спасибо!

5
задан billmalarky 5 October 2011 в 15:01
поделиться