правильное использование mysqli_begin_transaction - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу использовать какой-нибудь транзакционный mysql в моем PHP, я посмотрел документы по PHP и мне нужно использовать несколько функций,

mysqli_begin_transaction
mysqli_rollback
mysqli_commit

Мой код в настоящее время выглядит следующим образом,

mysqli_begin_transaction($db_link, MYSQLI_TRANS_START_READ_WRITE);  
$sql = "SELECT * FROM table";  
$result = mysqli_query($sql);  
if(!$result){
    $rollback = true;  
}
$sql = "SELECT * FROM another";
$result = mysqli_query($sql);  
if(!$result){
    $rollback = true;
}
$sql = "DELETE FROM table_name WHERE condition;"
mysqli_query($sql);
if(mysqli_affected_rows($db_link) < 0){
    $rollback = true;
}
if($rollback){
    mysqli_rollback($db_link)
} else {
    mysqli_commit($db_link)
}

Это очень грубый псевдокод, но мой вопрос в том, что функция транзакции возвращает все значения в соответствии с документацией php, поэтому я должен обернуть их в условные операторы и выдать исключение чего-то похожего, если они не возвращают true.

...