Ao fazer as alterações mandadas na aula para mim continua dando um erro ao adicionar
O produto nome; ?> 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 ' 'Livro para programadores',1, false)' at line 2
Segue abaixo todos os meu códigos:
class/produto.php
<?php
class Produto {
public $id;
public $nome;
private $preco;
public $descricao;
public $categoria ;
public $usado;
function __construct($nome = "Produto indefinido", $preco = 99999 ,$descricao = "contate o admnistrador",Categoria $categoria, $usado = "true"){
$this->nome = $nome;
$this->setPreco($preco);
$this->descricao = $descricao;
$this->categoria = $categoria;
$this->usado = $usado;
}
function __toString() {
return $this->nome.":".$this->preco."<br/>";
}
public function valorComDesconto($valor = 0.1) {
if ($valor <= 0.5 && $valor > 0) {
$this->setPreco($this->preco -= $this->preco * $valor);
}
return $this->preco;
}
public function getPreco()
{
return $this->preco;
}
public function setPreco($preco)
{
$this->preco = $preco;
}
}
?>
banco-produto.php
<?php
require_once("class/produto.php");
require_once("class/categoria.php");
require_once("conecta.php");
function listaProdutos($conexao) {
$produtos = array();
$resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id");
while($produto_atual = mysqli_fetch_assoc($resultado)) {
$categoria = new Categoria;
$categoria->nome = $produto_atual['categoria_nome'];
$produto = new Produto($produto_atual['nome'], $produto_atual['preco'],$produto_atual['descricao'],$categoria, $produto_atual['usado']);
$produto->id = $produto_atual['id'];
array_push($produtos, $produto);
}
return $produtos;
}
function insereProduto($conexao, Produto $produto) {
$query = "insert into produtos (nome, preco, descricao, categoria_id, usado)
values ('{$produto->nome}', {$produto->getPreco}, '{$produto->descricao}',{$produto->categoria->id}, {$produto->usado})";
return mysqli_query($conexao, $query);
}
function alteraProduto($conexao, $id, $nome, $preco, $descricao, $categoria_id, $usado) {
$query = "update produtos set nome = '{$nome}', preco = {$preco}, descricao = '{$descricao}',
categoria_id= {$categoria_id}, usado = {$usado} where id = '{$id}'";
return mysqli_query($conexao, $query);
}
function buscaProduto($conexao, $produto) {
$query = "select * from produto where id = {$produto->id}";
$resultado = mysqli_query($conexao,$query);
return mysqli_fetch_assoc($resultado);
}
function removeProduto($conexao, $id) {
$query = "delete from produtos where id = {$id}";
return mysqli_query($conexao, $query);
}
adiciona-produto.php
<?php
require_once("class/produto.php");
require_once("class/categoria.php");
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("logica-usuario.php");
verificaUsuario();
$categoria = new Categoria;
$categoria->id = $_POST['categoria_id'];
if(array_key_exists('usado',$_POST)){
$usado = "true";
} else {
$usado = "false";
}
$produto = new Produto($_POST['nome'],$_POST['preco'],$_POST['descricao'],$categoria, $usado);
$produto->usado = $usado;
if(insereProduto($conexao, $produto)) { ?>
<p class="alert-success">O produto <?= $produto->nome; ?>, <?= $produto->getPreco(); ?> adicionado com sucesso!</p>
<?php } else {
$msg = mysqli_error($conexao);
?>
<p class="alert-danger">O produto <? = $produto->nome; ?> não foi adicionado: <?=$msg?></p>
<?php
}
?>
<?php include("rodape.php"); ?>
Agradeço a ajuda!