Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Mensagem de erro nao aparece

Ola boa noite...

a mensagem do mysqli_error() não está aparecendo :

<?php include ("cabecalho.php"); ?>

<?php


function insereProduto($conexao, $nome, $preco) {
    $query = "insert into produtos (nome, preco) values ('{$nome}', '{$preco}')";
    $resultadoDaInsercao = mysqli_query($conexao, $query);
    return $resultadoDaInsercao;
}

$nome = $_GET['nome'];
$preco = $_GET['preco'];
$conexao = mysqli_connect("localhost", "root", "", "loja");



if($conexao !=null and $nome != null and $preco != null) {
    insereProduto($conexao, $nome, $preco);
?>
<p class="text-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
} else {
    $msg = mysqli_error($conexao);
?>
<p class="tex-danger">O produto <? = $nome; ?> não foi adicionado:   <? = $msg; ?></p>
<?php
}
?>

<?php include ("rodape.php"); ?>
3 respostas

Oi Nathan, tudo bom?

O erro não esta aparecendo pois estamos tratando os dados antes:

if($conexao !=null and $nome != null and $preco != null) {

Ou seja, não estamos deixando passar os campos vazios, e o insereProduto não esta gerando nenhum erro pra sua conexão =)

Tente sem o if:

<?php
if(insereProduto($conexao, $nome, $preco)) {
?>
<p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
} else {
    $msg = mysqli_error($conexao);
?>
<p class="alert-danger">O produto <? = $nome; ?> não foi adicionado: <?= $msg ?></p>
<?php
}
?>

Abraço e bons estudos =)

Olá André,

Tentei da maneira descrita acima, mas se eu fizer assim ele insere um valor vazio no banco e mesmo assim nao pega o erro.

solução!

Oi Nathan, essa parte de inserir valores vazios eu expliquei nessa duvida aqui:

https://cursos.alura.com.br/forum/topico-erro-ao-adicionar-produto-37314#589405

Dá uma olhada e qualquer dificuldade compartilha com a gente =)

Abraço!