$SERVERNAME='localhost'; $USERNAME='root'; $SENHA=''; $BASENAME='admlocequipam'; # As variáveis carregam os dados da conexão # Agora vamos 'fazer' conexão $db=mysql_pconnect($SERVERNAME,$USERNAME,$SENHA) or die ("Erro ao conectar ao Banco"); # E agora escolher a base de dados $banco=mysql_select_db($BASENAME,$db) or die ("Problemas ao escolher a base de dados"); # escrevo o comando SQL dentro de uma variável. O comando pode ser escrito livremente com quebra de linha para ficar mais fácil de ler $cmd="INSERT INTO fabricantes (cpfabricante, nucnpj, cecidade, txnomeusual, txrazaosocial, dtcadastro, txlogradouro, txbairro, nutelefone) VALUES ($_POST[cpfabricante], $_POST[nucnpj], $_POST[cecidade], $_POST[txnomeusual], $_POST[txrazaosocial], $_POST[dtcadastro], $_POST[txlogradouro], $_POST[txbairro], $_POST[nutelefone])"; $tentativa=TRUE; while ( $tentativa ) { # Inicio do laço que controla a transação # Agora executamos a variável. $exec_cmd=mysql_query($cmd); # Vamos avaliar os erros com o comando SWITCH (uma vez que temos 3 situações possíveis switch (TRUE) { # Avaliação da situação de erro (se existir). case mysql_errno($db) == 1213 : { # Erro de DeadLock - Cancelar e Reiniciar a transacao $query=mysql_query("ROLLBACK"); $tentativa=TRUE; break; } case mysql_errno($db) > 0 : { # Erro! NÃO por deadlock. AVISAR o usuario. CANCELAR A transacao $query=mysql_query("ROLLBACK"); $tentativa=FALSE; printf("O comando apresentou erro e a mensagem foi essa:
\n"); $mensagem=mysql_errno($db)." - ".mysql_error($db); printf($mensagem); } case mysql_errno($db) == 0 : { # Nao tem erro! Concluir a transacao e Avisar o usuario. $query=mysql_query("COMMIT"); $tentativa=FALSE; printf("Comando executado com sucesso!" } } } # Fim do laço que controla a transação