2
respostas

Erro na adição do produto, solicitando um valor padrão para o atributo 'descricao'

Ao tentar adicionar um produto é acusado que o campo descricao não tem um valor padrão. O que isso significa?

O produto livro de JavaScript não foi adicionado: Field 'descricao' doesn't have a default value

Código:

<?php 
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("logica-usuario.php");
require_once("class/Produto.php"); //importando o arquivo class Produto

verificaUsuario();

$produto = new Produto(); //instanciando a classe Produto

$produto->nome = $_POST['nome'];
$produto->preco = $_POST['preco'];
$produto->descricao = $_POST['descricao'];
$produto->categoria_id = $_POST['categoria_id'];

if(array_key_exists('usado', $_POST)) {
    $produto->usado = "true";
} else {
    $produto->usado = "false";
}

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

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

Oi Geovane, tudo bom?

Isso pode ser sugeira no seu banco. Alguns produtos antigos podem ter sido adicionados sem descrição, e ao adicionar o campo descrição esses campos estão sem um valor padrão, impedindo a query.

Tenta rodar um update no seu banco colocando um valor para todos os produtos que não tem descrição.

Se não rolar compartilha com a gente o conteudo da sua função insereProduto =)

Abraço

Então André, não existem produtos adicionados sem descrição. No formulário de adição só há dois inputs, um para o nome do produto e o outro para preço. O valor padrão não deveria ser null?