Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Produto inserindo NULL

Produto é inserido no BD mesmo se não for passado nenhum parâmetro em nome e preço

SQL create:

create table produtos (id integer auto_increment primary key, nome varchar(255), preco decimal(10,2))

formulario-produto:

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

$nome = $_GET["nome"]; $preco = $_GET["preco"];

$query = "INSERT INTO produtos (nome, preco) values ('{$nome}', '{$preco}')"; $connect = mysqli_connect('localhost', 'root', '', 'alura');

if(mysqli_query($connect, $query)) { ?>

"Produto <?php echo $nome; ?> adicionado com sucesso. Preço <?php echo $preco; ?>

<?php }else{ ?>

"Produto <?php echo $nome; ?> não adicionado. Preço <?php echo $preco; ?>

<?php } include("rodape.php") ?>

2 respostas
solução!

Você não está verificando se os campos estão vazios, então ele vai inserir vazio mesmo... Você precisa fazer algo para verificar se os campos não estão vazios, por exemplo:

$nome = $_GET["nome"]; $preco = $_GET["preco"];

if($nome&&$preco){
    $query = "INSERT INTO produtos (nome, preco) values ('{$nome}', '{$preco}')"; 
    $connect =         mysqli_connect('localhost', 'root', '', 'alura');
...

Perfeito ! Obrigado !

Achei que o if(mysqli_query($connect, $query))

Retornaria um erro quando null, mas não.