3
respostas

"Incorrect integer value: '' for column 'usado' at row 1"

Boa noite a todos. Fiz a query de de criação de de uma nova coluna:

alter table produtos add column usado boolean default false;
function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado) {
    $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$nome}', {$preco}, '{$descricao}', '{$categoria_id }', '{$usado}')";
    return mysqli_query($conexao, $query);
}
<?php

$nome = $_POST['nome'];
$preco = $_POST['preco'];
$descricao = $_POST['descricao'];
$categoria_id = $_POST['categoria_id'];
$usado = $_POST['usado'];

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

e está apresentando esse erro.

"Incorrect integer value: '' for column 'usado' at row 1"

Alguém passou por isso? sabe o que pode ser?

Obrigado

3 respostas

A variável usado ta com true/false ou 0/1 ? acho que precisa verificar o valor nesse caso.

Olá Alberto. Já tentei colocar como 0 e como false.nenhum dos dois jeitos deu certo

O problema está em colocar a variável '{$usado}' entre aspas simples. O MySQL vai sempre identificar como texto e não como integer ou boolean.

//Jeito errado
function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado) {
    $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$nome}', {$preco}, '{$descricao}', '{$categoria_id }', '{$usado}')";
    return mysqli_query($conexao, $query);
}

//Jeito certo, sem aspas na variável $usado
function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado) {
    $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$nome}', {$preco}, '{$descricao}', '{$categoria_id }',  {$usado} )";
    return mysqli_query($conexao, $query);
}

Veja se resolve e nos mande um retorno aqui.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software