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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top