É possível fazer transações de banco de dados mysql e reversões com php?
-
06-09-2019 - |
Pergunta
exemplo: fazer uma transferência de pagamento de utilizador A para o usuário B. Conta de utilizador A: -10 USD Conta de usuário B: +10 USD
Se houver uma transação, e algo der errado, tudo fica desfeita. Assim, com transações que não vai acontecer essa conta de usuário Uma fica diminuída por 10, enquanto conta de usuário B não se aumentada em 10.
Eu sei que as pessoas java fazer uso de transações e reversões em todo o lugar. Mas eu nunca ouvi falar de PHP-caras fazendo isso.
Nenhuma solução correta
Outras dicas
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
Certifique-se de suas tabelas de usar o motor de InnoDB
:. MyISAM
não suporta transações
atualização Comment :
InnoDB
é um dos dois principais mecanismos de armazenamento usados ??por MySQL
, o outro sendo MyISAM
.
MySQL
vem com suporte InnoDB
compilado por padrão e na verdade é preciso algum esforço para desativá-lo.
Eu nunca ouvi falar de MySQL
com InnoDB
desativada até mesmo por mais barato dos hosters.
Se você usar DOP, também tem suporte a transações
http://us2.php.net/manual/en/pdo .begintransaction.php
como já foi dito, certifique-se de usar o motor de armazenamento InnoDB.