estou tentando listar todos os produtos de uma tabela no banco de dados que possuam a mesma categoria de produto porém está sendo exibido o seguinte erro:
PDOException Object
(
[message:protected] => SQLSTATE[42000]: Syntax error or access violation: 1064 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 'FROM produtos WHERE categoria_id = '0'' at line 1
[string:Exception:private] =>
[code:protected] => 42000
[file:protected] => C:\curso php\PDO1\classes\Produto.php
[line:protected] => 48
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => C:\curso php\PDO1\classes\Produto.php
[line] => 48
[function] => execute
[class] => PDOStatement
[type] => ->
[args] => Array
(
)
)
[1] => Array
(
[file] => C:\curso php\PDO1\classes\Categoria.php
[line] => 63
[function] => listarPorCategoria
[class] => Produto
[type] => ::
[args] => Array
(
[0] => 1
)
)
[2] => Array
(
[file] => C:\curso php\PDO1\categorias-detalhe.php
[line] => 8
[function] => carregarProdutos
[class] => Categoria
[type] => ->
[args] => Array
(
)
)
)
[previous:Exception:private] =>
[errorInfo] => Array
(
[0] => 42000
[1] => 1064
[2] => 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 'FROM produtos WHERE categoria_id = '0'' at line 1
)
)
o arquivo que estou acessando o arquivo categorias-detalhe.php pela url http://localhost:8080/categorias-detalhe.php?id=1
ou seja ele deveria listar todos os produtos na tabela produdos que possuem o categoria_id =1 categorias-detalhe.php
<?php require_once 'global.php';
?>
<?php
try {
$id = $_GET['id'];
$categoria = new Categoria($id);
$categoria->carregarProdutos();
$listaProdutos = $categoria->produtos;
}catch(Exception $e){
Erro::trataErro($e);
}
?>
<?php require_once 'cabecalho.php' ?>
<div class="row">
<div class="col-md-12">
<h2>Detalhe da Categoria</h2>
</div>
</div>
<dl>
<dt>ID</dt>
<dd><?php echo $categoria->id; ?></dd>
<dt>Nome</dt>
<dd><?php echo $categoria->nome; ?></dd>
<dt></dt>
<dd>
<ul><?php foreach($listaProdutos as $linha): ?>
<li><a href="/produtos-editar.php?id=<?php echo $linha['id']; ?>"><?php echo $linha['nome']; ?></a></li>
<?php endforeach; ?>
</ul>
</dd>
</dl>
<?php require_once 'rodape.php' ?>
categoria.php
<?php
class Categoria
{
public $id;
public $nome;
public $produtos;
public function carregarProdutos (){
$this->produtos = Produto::listarPorCategoria($this->id);
Produto.php
<?php
class Produto {
public $id;
public $nome;
public $preco;
public $quantidade;
public $categoria_id;
public static function listarPorCategoria($categoria_id){
$query = 'SELECT id, nome, preco, quantidade, FROM produtos WHERE categoria_id = :categoria_id';
$conexao = Conexao::pegarConexao();
$stmt = $conexao->prepare($query);
$stmt->bindValue(':categoria_id', intVal('$categoria_id'));
$stmt->execute();
return $stmt->fetchAll();
}
?>
o que pode estar acontecendo?