0
I am trying to implement a transaction on my Sqls, but because of them, my page does not load. Follow the code:
<?php
//CONEXÃO COM O BANCO DE DADOS
include_once("conexao.php");
//VARIÁVEIS COM DADOS DO FORMULÁRIO
$nome = $_POST["nome"];
$email = $_POST["email"];
$senha = $_POST["senha"];
$senhaConfirm = $_POST["senhaConfirm"];
$telefone = $_POST["telefone"];
$celular = $_POST["celular"];
$rua = $_POST["rua"];
$bairro = $_POST["bairro"];
$numero = $_POST["numero"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$cep = $_POST["cep"];
$complemento = $_POST["complemento"];
$usuario = $_POST["usuario"];
$nomeMercado = $_POST["nomeMercado"];
$cnpj = $_POST["cnpj"];
$telefoneMercado = $_POST["telefoneMercado"];
$celularMercado = $_POST["celularMercado"];
$expedienteInicio = $_POST["expedienteInicio"];
$expedienteFim = $_POST["expedienteFim"];
$arquivo = $_POST["arquivo"];
$cod_usuario;
$cod_endereco;
//INICIO DA TRANSAÇÃO
$pdo->beginTransaction();
//INSERÇÃO DE DADOS NA TABELA ENDEREÇO
$insertEndereco = $pdo->prepare("INSERT INTO ENDERECO(COD_ENDERECO, BAIRRO, CEP, CIDADE, COMPLEMENTO, ESTADO, NUMERO, RUA) VALUES(:bairro, :cep, :cidade, :complemento, :estado, :numero, :rua)");
$insertEndereco->bindValue(":bairro",$bairro);
$insertEndereco->bindValue(":cep",$cep);
$insertEndereco->bindValue(":cidade",$cidade);
$insertEndereco->bindValue(":complemento",$complemento);
$insertEndereco->bindValue(":estado",$estado);
$insertEndereco->bindValue(":numero",$numero);
$insertEndereco->bindValue(":rua",$rua);
$insertEndereco->execute();
//VERIFICA SE A INSERÇÃO DE DADOS DE ENDEREÇO RETORNA TRUE(FOI REALIZADA)
if (!$insertEndereco) {
die("Oops, houve um erro no cadastro de seu endereço, tente novamente ou contacte a adaministração.");
}
//INSERÇÃO DE DADOS NA TABELA USUARIO
$insertUsuario = $pdo->prepare("INSERT INTO USUARIOS(COD_ENDERECO, NOME_USUARIO, E-MAIL_USUARIO, SENHA_USUARIO, TELEFONE, CELULAR, TIPO_USUARIO,) VALUES(:cod_endereco,:nome,:email, :senha, :telefone, :celular, :usuario)");
$insertUsuario->bindValue("cod_endereco",$cod_endereco); //LAST_INSERT_ID()
$insertUsuario->bindValue(":nome",$nome);
$insertUsuario->bindValue(":email",$email);
$insertUsuario->bindValue(":senha",$senha);
$insertUsuario->bindValue(":telefone",$telefone);
$insertEndereco->bindValue(":celular",$celular);
$insertEndereco->bindValue(":usuario",$usuario);
$insertEndereco->execute();
if (!$insertUsuario) {
die("Oops, houve um erro no cadastro de seus dados pessoais, tente novamente ou contacte a adaministração.");
}
//INSERÇÃO DE DADOS NA TABELA SUPERMERCADO
$insertMercado = $pdo->prepare("INSERT INTO SUPERMERCADO (CNPJ, NOME, FOTO_SUPERMERCADO, INICIO_EXPEDIENTE,
FIM_EXPEDIENTE, TELEFONE) VALUES (:cod_endereco_mercado, :cod_usuario, :cnpj, :nomeMercado, :arquivo, :expedienteInicio, :expedienteFim, :$telefoneMercado)");
$insertMercado->bindValue(":cod_endereco_mercado",$cod_endereco);
$insertMercado->bindValue(":cod_usuario",$cod_usuario);
$insertMercado->bindValue(":cnpj",$cnpj);
$insertMercado->bindValue(":nomeMercado",$nomeMercado);
$insertMercado->bindValue(":arquivo",$arquivo);
$insertMercado->bindValue(":expedienteInicio",$expedienteInicio);
$insertMercado->bindValue(":expedienteFim",$expedienteFim);
$insertMercado->bindValue(":telefoneMercado",$telefoneMercado);
$insertMercado->execute();
//CASO TENHA DADO ALGUM ERRO NA TRANSAÇÃO rollBack IRÁ CANCELAR TODAS ELAS
$pdo->rollBack();
if (!$insertMercado) {
die("Oops, houve um erro no cadastro de seu mercado, tente novamente ou contacte a adaministração.");
}
//FINALIZANDO TRANSAÇÃO
$pdo->commite(); ?>
What might be going on?
What do you mean by not carry? Gives some error or exceeds the loading time limit?
– Woss
The page does not load, says it is not working, stating error 500 http.
– Anderson Amorim
In your server log some more specific error appears?
– Woss
No, when I take out the transaction mechanism the page normally loads.
– Anderson Amorim
Put a Try catch before prepare and print the error to see what’s happening
– Cristiano Pacheco
Are you running locally? Some servers prevent you from showing errors. That’s why they don’t load the page
– Sveen