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

Erro de Sintaxe

Toda vez que tento adicionar um produto ao meu banco de dados recebo um erro me informando:

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 ')' at line 1

Meu código:

<?php include("cabecalho.php"); ?>

<?php
function insereproduto($conexao, $nome, $preco){
    $query = "insert into produtos (nome, preco) values ('{$nome}' , {$preco})";

    $resultadodainsercao = mysqli_query($conexao, $query);
    return $resultadodainsercao;
}

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

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 <?php $nome; ?> não foi adicionado: <?= $msg ?></p>
    <?php
}
?>

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

E ai Luhan,

A variável preço está indo como? com virgula ou com ponto? pensa assim, no seu comando abaixo, ele irá substituir as variáveis com o valor:

$query = "insert into produtos (nome, preco) values ('{$nome}' , {$preco})";

Se você passou Sabonete, 100,00 ele irá colocar assim no SQL

insert into produtos (nome, preco) values ('Sabonete' , 100,00)

E essa vírgula do preço irá gerar o erro.

Talvez funcione direto se estiver com ponto, ou entre aspas se estiver com vírgula, peço que teste e veja se o erro continua ;)

Forte Abraço!

solução!

Oi Luhan, tudo bom?

Estranho... seu erro está nos dizendo que há um problema de sintaxe na sua query. Mas, lendo aqui seu código não encontrei nenhum problema aparente de sintaxe propriamente dita.

Talvez o que o Luiz disse possa ser uma causa. Verifica qual valor está sendo passado para sua função adicionaProduto e manda aqui pra gente:

function insereproduto($conexao, $nome, $preco){
    var_dump($preco);die();
    $query = "insert into produtos (nome, preco) values ('{$nome}' , {$preco})";

    $resultadodainsercao = mysqli_query($conexao, $query);
    return $resultadodainsercao;
}

Este erro ocorre quando você tenta adicionar um produto no seu banco pelo terminal? Ou pelo sistema?

O erro diz algo a mais?

Aqui você encontra os arquivos desse curso prontos. Talvez possa ser um bom norte =)

Aguardo retorno.

Abraço!