Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JorgitoDF

Verificar se Dados foram Gravados no Banco de Dados

Recommended Posts

Boa tarde pessoal, gostaria de obter uma orientação em relação a como verificar se os dados foram gravados no banco de dados.

 

O código que estou usando na aplicação é este:

$queryTelefone = $conexao->prepare("INSERT INTO tb_telefone (tel_fixo1, tel_fixo2, tel_celular, fk_id_contato_tb_telefone, fk_id_en_tb_telefone) VALUES (?, ?, ?, ?, ?)") or die ($conexao->error);

$queryTelefone->bind_param("sssss", $novotxtTelFixo1, $novotxtTelFixo2, $txtNovoCelular, $id_Contato, $id_En);

$queryTelefone->execute();

Gostaria de saber como eu faço para verificar se os dados foram inseridos e gravado no banco de dados após o execute(); e lançar a mensagem "Dados cadastrados com sucesso!" ou "Não foi possível inserir o registro!"

 

 

Agradeço que puder me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

se $conexao for um objeto PDO. Basta acrescentar a array abaixo

$conexao = new PDO( 'mysql:host=host;dbname=bancodedados' , 'usuario' , 'senha', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)  );

Compartilhar este post


Link para o post
Compartilhar em outros sites

se a variável $conexao for um objeto do mysqli_stmt,

é so armazenar o $queryTelefone->execute(); em uma variável, se inseriu ele retorna TRUE se não ele retorna FALSE

Sem querer ser chato, e também já utilizei dessa forma por muito tempo, tenho que ressaltar que apesar de funcionar, existe uma certa dificuldade em se utilizar retornos (comumente booleanos) para o tratamento de erros. Um programa bem estruturado, trabalha com o "caminho feliz" e trata as suas exceções. Utilizar retornos, ao invés de exceptions, para criar uma desvio do caminho feliz, pode gerar uma verificação exponencial de probabilidades. Retornos que podem conter mais de um valor (como o boolean, true/false) devem ser evitados.

 

Methods with boolean parameters indicate bad design. Whenever you have methods that have boolean parameters, that’s a strong indicator of bad design. Usually, a boolean parameter is supposed to toggle between two modes of operation. Take a method called ‘Insert(object, bool commit)’. This method always inserts objects into a transaction, but it only commits the transaction when the parameter is ‘True’. For understandability and clarity, this method should be split into two versions, like ‘InsertAndCommit(object)’ and ‘Insert(object)’. This approach is self-documenting;

 

MySQLi disponibiliza a exceção mysqli_sql_exception. Ao utilizar exceptions você deve tratar os tipos de exceções que podem ocorrer de errado. Se nada ocorrer, não houve nada de errado. É bem simplista essa lógica.

 

Vou utilizar o seu exemplo:

$conexao->report_mode = MYSQLI_REPORT_ALL;//Ativa o reporte dos erros através da exceção mysqli_sql_exception

try {
    $conexao->autocommit(FALSE);//Desativa o auto commit do mysql

    $queryTelefone = $conexao->prepare("INSERT INTO tb_telefone (tel_fixo1, tel_fixo2, tel_celular, fk_id_contato_tb_telefone, fk_id_en_tb_telefone) VALUES (?, ?, ?, ?, ?)") or die ($conexao->error);

    $queryTelefone->bind_param("sssss", $novotxtTelFixo1, $novotxtTelFixo2, $txtNovoCelular, $id_Contato, $id_En);

    $queryTelefone->execute();

    $conexao->commit();//realiza o commit

    $queryTelefone->close();//Sempre feche o statement
} catch (mysqli_sql_exception $e) {
    $conexao->rollback();//se algo deu errado, realiza o rollback da transação

    echo $e;//Ele implementa __toString()
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Sem querer ser chato, e também já utilizei dessa forma por muito tempo, tenho que ressaltar que apesar de funcionar, existe uma certa dificuldade em se utilizar retornos (comumente booleanos) para o tratamento de erros. Um programa bem estruturado, trabalha com o "caminho feliz" e trata as suas exceções. Utilizar retornos, ao invés de exceptions, para criar uma desvio do caminho feliz, pode gerar uma verificação exponencial de probabilidades. Retornos que podem conter mais de um valor (como o boolean, true/false) devem ser evitados.

 

 

MySQLi disponibiliza a exceção mysqli_sql_exception. Ao utilizar exceptions você deve tratar os tipos de exceções que podem ocorrer de errado. Se nada ocorrer, não houve nada de errado. É bem simplista essa lógica.

 

Vou utilizar o seu exemplo:

$conexao->report_mode = MYSQLI_REPORT_ALL;//Ativa o reporte dos erros através da exceção mysqli_sql_exception

try {
    $conexao->autocommit(FALSE);//Desativa o auto commit do mysql

    $queryTelefone = $conexao->prepare("INSERT INTO tb_telefone (tel_fixo1, tel_fixo2, tel_celular, fk_id_contato_tb_telefone, fk_id_en_tb_telefone) VALUES (?, ?, ?, ?, ?)") or die ($conexao->error);

    $queryTelefone->bind_param("sssss", $novotxtTelFixo1, $novotxtTelFixo2, $txtNovoCelular, $id_Contato, $id_En);

    $queryTelefone->execute();

    $conexao->commit();//realiza o commit

    $queryTelefone->close();//Sempre feche o statement
} catch (mysqli_sql_exception $e) {
    $conexao->rollback();//se algo deu errado, realiza o rollback da transação

    echo $e;//Ele implementa __toString()
}

Valeu mesmo Gabriel Heming pela dica, vou testar aqui na minha aplicação!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.