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

Erro de sintaxe SQL

O produto caderno não foi adicionado: 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 ''caderno'}, {'15'})' at line 1

Esse erro tem acontecido toda vez que vou inserir um novo produto. Ele diz que é um erro de sintaxe SQL, mas eu não sei como ver o código desse arquivo.

4 respostas

Oi Geovane,

Você deve ter aí um arquivo chamado adiciona-produto.php. Dentro dele tem o comando que você executa ao adicionar um novo produto. Provavelmente tem algum erro de sintaxe neste seu comando.

Posta aqui o conteúdo do seu arquivo adiciona-produto.php para tentarmos te ajudar?

Abraço!

<?php include("cabecalho.php"); ?>
<?php include("conecta.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"];


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

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

Acho que o problema está aqui:

values ({'$nome'}, {'$preco'})

tente:

values ('{$nome}', '{$preco}')
solução!

Use:

values ('{$nome}', {$preco})

o {$preço} não precisa das aspas simples, pois ele não é uma string.

Abraços, bons estudos