Primeira vez utilizando commit() e rollback()
Boa noite
Pessoal, eu utilizo o código abaixo para fazer duas transações no banco:
$sqlinsert = $mysqli->prepare("INSERT INTO tbl_pessoafisica(cpf,senha,nome,email,celular) VALUES (?,?,?,?,?)");
$sqlinsert ->bind_param('sssss', $cpf,$senha,$nome,$email,$cel);
$sqlinsert ->execute();
if($sqlinsert->affected_rows==1){ // se gravou
$codpf = $sqlinsert->insert_id;
$sqlinsert->close(); // fecho conexao
$sqlinsertacesso = $mysqli->prepare("INSERT INTO tbl_acesso (cod_perfil,cod_pf) VALUES (?,?)");
$sqlinsertacesso->bind_param('ii', $perfil,$codpf);
$sqlinsertacesso->execute();
if($sqlinsertacesso->affected_rows==1){ // se gravou na tabela acesso
$sqlinsertacesso->close();
}
else{
$sqlinsertacesso->close();
$sqldelete = $mysqli->prepare("DELETE FROM pessoafisica where cod_pf = '$codpf'");
$sqldelete->execute();
$sqldelete->close();
}
}
else{
$sqlinsert->close();
}
Ou seja, eu gravo na tabela pessoafisica, pego o código inserido, depois tento gravar na outra tabela, se conseguir OK senão DELETO o registro inserido na primeira tabela.
Isso está funcionando, mas eu gostaria de UTILIZAR o commit e rollback ( aprender né ?)
Eu gostaria que alguém me desse um exemplo de como eu faria isso:
$sqlinsert = $mysqli->prepare("INSERT INTO tbl_pessoafisica(cpf,senha,nome,email,celular) VALUES (?,?,?,?,?)");
$sqlinsert ->bind_param('sssss', $cpf,$senha,$nome,$email,$cel);
$codpf = $sqlinsert->insert_id;
$sqlinsert = $mysqli->prepare("INSERT INTO tbl_acessolofe (cod_perfil,cod_pf) VALUES (?,?)");
$sqlinsert->bind_param('is', $perfil,$codpf);
Se as duas querys foram executadas
commit()
SENAO
rollback()
desde já agradeço.
Discussão (4)
Carregando comentários...