estou querendo criar um stmt com transação em MySqli. Encontrei tudo sobre um e outro, mas não os dois junto.
Gostaria que no meio de um stmt se der erro, execute um rollback. Alguém sabe como fazer?
Segue os códigos de cada:
Statement
$insert_stmt=$mysqli->prepare("INSERT INTO x VALUES(?,?)") or die($mysqli->error);
$insert_stmt->bind_param("is", $my_number,$my_string); //i=integer
for ($my_number = 1; $my_number <= 10; $my_number++) {
$my_string="row ".$my_number;
$insert_stmt->execute( ) or die ($insert_stmt->error);
//gostaria que se desse erro aqui fizesse o rollback!!!
}
$insert_stmt->close( );
Transação
$mysqli->autocommit(FALSE);
$mysqli->query("UPDATE account_balance SET balance=balance-$tfer_amount WHERE account_id=$from_account");
if ($mysqli->errno) {
printf("transaction aborted: %s\n",$mysqli->error);
$mysqli->rollback( );
}
else {
$mysqli->query("UPDATE account_balance SET balance=balance+$tfer_amount WHERE account_id=$to_account");
if ($mysqli->errno) {
printf("transaction aborted: %s\n",$mysqli->error);
$mysqli->rollback( );
}
else {
printf("transaction succeeded\n");
$mysqli->commit( );
}
}
Pergunta
tatianaSP
Boa tarde,
estou querendo criar um stmt com transação em MySqli. Encontrei tudo sobre um e outro, mas não os dois junto.
Gostaria que no meio de um stmt se der erro, execute um rollback. Alguém sabe como fazer?
Segue os códigos de cada:
Statement
TransaçãoSerá que é possível? alguém ajuda? Obrigada!!!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.