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

Problema na consulta do banco

Na pagina está retornando que houve problema na consulta do banco...

Erro ao alterar produto You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'where id=63' at line 1

segue a função

function alteraProduto($conexao, $id, $nome, $preco, $descricao, $categoria_id, $usado){
    $query= "update produtos set nome='{$nome}', preco={$preco}, descricao='{$descricao}', categoria_id={$categoria_id}, usado={$usado} where id={$id}";
    return mysqli_query($conexao, $query);
}
4 respostas

Fala Ruan,

Tranquilo,

Não conheço muito o MariaDB, mas como ele salva os campos booleanos? true / false ou 0 / 1? acredito que seja esse o problema, a variável $usado está com qual valor? se ela for nula, o texto ficaria usado= where id=63, gerando o possível erro.

Abraços!

Como informado pelo Luiz, é possível que a variável $usado esteja como null.

No MySQL a coluna boolean é um inteiro de um byte, expresso assim INT(1). Você perceberá que ao realizar um SELECT, os valores retornados serão 0 e 1 ao invés de FALSE e TRUE, respectivamente.

Seguindo a lógica do projeto do curso, é possível que você não tenha verificado o formulário enviou 'usado' via POST. Tente da seguinte forma:

if(array_key_exists('usado',$_POST))
    $usado = "true"; 
else
    $usado = "false";
solução!

eu tinha copiado a query e tentado fazer manualmente pelo banco, mas deu erro por que o "update " estava minusculo, então coloquei maiúsculo e funcionou. Depois tentei novamente e funcionou com ele minusculo. Não me perguntem oq houve, só fiz isso e funcionou kkkk.

function alteraProduto($conexao, $id, $nome, $preco, $descricao, $categoria_id, $usado) {
    $query = "update produtos set nome= '{$nome}', preco= {$preco}, descricao= '{$descricao}', categoria_id= {$categoria_id}, usado= {$usado} where id= '{$id}'";
    return mysqli_query($conexao, $query);
}

Se funciona, não mexe!