Я пытаюсь выяснить, как использовать транзакции sql с подготовленными операциями mysqli. Я не смог найти примеры, которые используют несколько подготовленных операторов (это не OO), поэтому я не уверен, как использовать транзакции с ними. Это ближайший я мог понять:Несколько mysqli подготовленных операторов с транзакциями
mysqli_autocommit($database, FALSE);
$transferq = 'INSERT INTO money (user_id, bank, onhand, type, amount, source) VALUES (?, ?, ?, ?, ?, ?)';
$transferstmt = mysqli_stmt_init($database);
mysqli_stmt_prepare($transferstmt, $transferq);
mysqli_stmt_bind_param($transferstmt, 'iiisis', $userid, $newbank, $newmoney, $type, $amount, $source);
mysqli_stmt_execute($transferstmt);
$insertq = 'UPDATE users SET money=?, bank=? WHERE user_id=' . $userid . ' LIMIT 1';
$insertstmt = mysqli_stmt_init($database);
mysqli_stmt_prepare($insertstmt, $insertq);
mysqli_stmt_bind_param($insertstmt, 'ii', $newmoney, $newbank);
mysqli_stmt_execute($insertstmt);
mysqli_commit($database);
Но я понятия не имею, если это будет даже работать. Моя самая большая проблема, однако, заключается в том, что я не уверен, как проверить, не вызвали ли запросы или нет (и, следовательно, делать или не совершать). Я видел пример, я думаю, что сделал что-то вроде
if(mysqli_stmt_execute($stmt)){
mysqli_commit($database);
}else{
mysqli_rollback($database);
}
Но я не могу сделать это, так как у меня есть несколько подготовленных инструкций для выполнения.
Как это должно работать?