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

Dúvida no Ex. 5 da Aula 3 - Criando Funções no PHP

<?php include 'cabecalho.php'; ?>
<?php

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

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

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
}
?>
<?php include 'rodape.php'; ?>

Consigo inserir produtos sem colocar nome e preço. Mesmo no banco de dados estando como not null. O que esta acontecendo?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Gabriel, quando você envia os dados via web, os campos que estão em branco não são enviados como null, mas como string vazia. É por isso que ele está aceitando gravar os campos em branco. Para resolver, você precisará fazer uma teste em seu código verificando se os campos estão em branco.

Improvisado. Mas foi:

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