Pessoal, estou refatorando o código de acordo com as aulas de orientação a objetos. Entretanto, meu alterar produto tá dando pau!
Alguém sabe me dizer?
O produto nome; ?> 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 ' usado = false where id = '12'' at line 2
Código relacionado:
Banco-Produto.php
function alteraProduto($conexao, Produto $produto) {
$query = "update produtos set nome = '{$produto->nome}', preco = {$produto->preco}, descricao = '{$produto->descricao}',
categoria_id= {$produto->categoria->id}, usado = {$produto->usado} where id = '{$produto->id}'";
$resultadoAlteracaoProduto = mysqli_query($conexao, $query);
return $resultadoAlteracaoProduto;
}
Altera-produto.php
<?php
require_once("model/Produto.php");
require_once("cabecalho.php");
require_once("banco-produto.php");
$produto = new Produto;
$produto->id = $_POST['id'];
$produto->nome = $_POST["nome"];
$produto->preco = $_POST["preco"];
$produto->descricao = $_POST["descricao"];
$produto->categoria_id = $_POST["categoria_id"];
if(array_key_exists('usado', $_POST)) {
$usado = "true";
} else {
$usado = "false";
}
$produto->usado = $usado;
if(alteraProduto($conexao, $produto)) { ?>
<p class="text-success">Produto <?= $produto->nome; ?>, <?= $produto->preco; ?> produto alterado com sucesso!</p>
<?php
} else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <? = $produto->nome; ?> não foi alterado!: <?= $msg ?></p>
<?php
}
?>
<?php include("rodape.php");?>