Olá, estou com o seguinte erro no código altera-produto.php:
Warning: Creating default object from empty value in C:\xampp\htdocs\Projeto-de-php\loja\altera-produto.php on line 17
O produto bola de futebol não foi alterado: 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 ' usado = true where id = '1'' at line 3
Segue o código do altera-produto.php:
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("class/Produto.php");
require_once("class/Categoria.php");?>
<?php
$usado = false;
$categoria = new Categoria();
$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"];
$produto->usado = $_POST["usado"];
$produto->categoria = $categoria;
if(array_key_exists("usado", $_POST)) {
$usado = "true";
} else {
$usado = "false";
}
if(alteraProduto($conexao,$produto)) { ?>
<p class="text-success">O produto <?= $produto->nome; ?>, <?= $produto->preco; ?> 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"); ?>
Segue o código da function alteraProduto no 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}'";
return mysqli_query($conexao, $query);
}