Estava escrevendo acompanhando o código do professor nas aulas, e o código final dele é o seguinte:
<?php include("cabecalho.php"); ?>
<?php
function insere ($conexao,$nome, $preco)
{
$query = "insert into produtos (nome, preco) values ('{$nome}','{$preco}')";
return mysqli_query($conexao,$query);
}
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysqli_connect('localhost', 'root', '', 'loja');
if(insere($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
}
?>
<?php include("rodape.php"); ?>
Porém, desta maneira, estava sendo adicionado dados vazios ao banco. Dando uma olhada no fórum, vi que uma solução seria alterar a função para:
function insere ($conexao,$nome, $preco)
{
if($nome != '' && $preco > 0)
{
$query = "insert into produtos (nome, preco) values ('{$nome}','{$preco}')";//comando usado para a inserção no banco
return mysqli_query($conexao,$query);
}
else
{
return false;
}
}
Porém, desta forma, a mensagem de erro $msg não é exibida, o que é estranho, pois tudo funciona muito bem no vídeo