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

Erro de sintaxe SQL

Tentar realizar UPDATE obtenho o sequinte erro: ( O produto mouse não foi alterado: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '}, preco = {preco} where id = 49' at line 1 )

Função:

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

Podem me ajudar ? Obrigado!

8 respostas

Olá Milton,

faz um echo na query preenchida e coloca o resultado delas aqui para podermos analisar.

function alteraProduto($conexao, $id, $nome, $unidade, $quantidade, $preco){
    $query = "update produtos set nome = '{$nome}', unidade = '{unidade}', quantidade = {quantidade}, preco = {preco} where id = {$id}";
    echo $query;
    return  mysqli_query($conexao, $query);
}

Veja o resultado do echo: update produtos set nome = 'mouse', unidade = '{unidade}', quantidade = {quantidade}, preco = {preco} where id = 49

Oi Milton, tudo bon?

Acho que passou alguns problemas de sintaxe. Tenta algo como:

$query = "update produtos set nome = '{$nome}', preco = {$preco}, descricao = '{$descricao}',
        categoria_id= {$categoria_id}, usado = {$usado} where id = '{$id}'";

Essa query e o resto do projeto até esse ponto, você pode encontrar aqui:

https://s3.amazonaws.com/caelum-online-public/php2/stages/php-mysql-parte2-capitulo7.zip

As vezes é legal ter essa referencia pra ter com o que comparar seu projeto =)

Qualquer dificuldade, compartilha com a gente!

Abraço e bons estudos

solução!

Olá Milton

faltou colocar o $ nas variáveis, então elas estão sendo tratadas como parte da string.

$query = "update produtos set nome = '{$nome}', unidade = '{$unidade}', quantidade = {$quantidade}, preco = {$preco} where id = {$id}";

Espero ter ajudado

Pessoal, deu certo! Agradeço pelo pronto atendimento dos ninjas.

Milton

Milton, estão faltando as aspas simples:

Você escreveu assim:

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

Teste assim:

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

Repare a diferença:

quantidade = {quantidade}
quantidade = '{quantidade}'

Testa e dá um feedback aqui! :-)