Prezados,
Acabei perdendo meus códigos das aulas anteriores deste curso, então estou usando o código da aula anterior disponibilizado no GitHub, alterando apenas o arquivo config.php para conexão com meu DB
Estou diante do seguinte erro:
[Thu Jul 22 10:40:07 2021] 127.0.0.1:44354 [500]: GET / - Uncaught Error: Call to a member function fetch_all() on bool in /home/rrmcastro/Cursos/Backend/10-alura-php-e-mysql-introducao-a-uma-webapp/3.2-formulario-para-adicionar-um-artigo/src/Artigo.php:16 Stack trace:
#0 /home/rrmcastro/Cursos/Backend/10-alura-php-e-mysql-introducao-a-uma-webapp/3.2-formulario-para-adicionar-um-artigo/index.php(7): Artigo->exibirTodos()
#1 {main} thrown in /home/rrmcastro/Cursos/Backend/10-alura-php-e-mysql-introducao-a-uma-webapp/3.2-formulario-para-adicionar-um-artigo/src/Artigo.php on line 16 [Thu Jul 22 10:40:07 2021] 127.0.0.1:44354 Closing
index.php
<?php
require 'config.php';
include 'src/Artigo.php';
$artigo = new Artigo($mysql);
$artigos = $artigo->exibirTodos();
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Meu Blog</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
<h1>Meu Blog</h1>
<?php foreach ($artigos as $artigo) : ?>
<h2>
<a href="artigo.php?id=<?php echo $artigo['id']; ?>">
<?php echo $artigo['titulo']; ?>
</a>
</h2>
<p>
<?php echo $artigo['conteudo']; ?>
</p>
<?php endforeach; ?>
</div>
</body>
</html>
Artigo.php
<?php
class Artigo
{
private $mysql;
public function __construct(mysqli $mysql)
{
$this->mysql = $mysql;
}
public function exibirTodos(): array
{
$resultado = $this->mysql->query('SELECT id, titulo, conteudo FROM artigos');
$artigos = $resultado->fetch_all(MYSQLI_ASSOC);
return $artigos;
}
public function encontrarPorId(string $id): array
{
$selecionaArtigo = $this->mysql->prepare("SELECT id, titulo, conteudo FROM artigos WHERE id = ?");
$selecionaArtigo->bind_param('s', $id);
$selecionaArtigo->execute();
$artigo = $selecionaArtigo->get_result()->fetch_assoc();
return $artigo;
}
}
artigo.php
<?php
require 'config.php';
require 'src/Artigo.php';
$obj_artigo = new Artigo($mysql);
$artigo = $obj_artigo->encontrarPorId($_GET['id']);
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Meu Blog</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
<h1>
<?php echo $artigo['titulo']; ?>
</h1>
<p>
<?php echo $artigo['conteudo']; ?>
</p>
<div>
<a class="botao botao-block" href="index.php">Voltar</a>
</div>
</div>
</body>
</html>
Agradeço desde já.