Bom dia galera, sigo aqui estudando o php com orientação a objetos e agora me deparei com o seguinte problema:
A atividade em questão precisa adicionar dados dentro de um banco de dados mysql, assim dentro do arquivo adicionar-artigo.php importei a conexão com o banco(connection.php) e a classe Artigo(Artigo.php). Porém ao inserir o ultimo em questão a página retorna o erro 500.
Pensei que o problema estava em torno da classe Artigo porém a pagina principal que instancia a mesma classe esta funcionando 100%.
O código php do arquivo **adicionar-artigo-php** é:<?php
require '../connection.php';
require '../src/Artigo.php'; // esta dando erro!
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$artigo = new Artigo($mysql);
$artigo->adicionarArtigo($_POST['titulo'], $_POST['conteudo']);
?>
A classe Artigo.php
<?php
require_once 'connection.php';
class Artigo {
private mysqli $mysql;
public function __construct(mysqli $mysql) {
$this->mysql = $mysql;
}
public function exibirTodos(): array
{
$consulta = 'SELECT id, titulo, conteudo FROM artigos';
$resultado = $this->mysql->query($consulta);
$artigos = $resultado->fetch_all(MYSQLI_ASSOC);
return $artigos;
}
public function encontrarCorpoArtigo(string $id): array{
# Usando a sintaxe anti mysql injection
$sql = 'SELECT id, titulo, conteudo FROM artigos WHERE id LIKE ?';
$consultaArtigo = $this->mysql->prepare($sql);
$consultaArtigo->bind_param('s', $id);
$consultaArtigo->execute();
$artigo = $consultaArtigo->get_result()->fetch_assoc();
return $artigo;
}
public function adicionarArtigo(string $titulo, string $conteudo): void{
$sql = 'INSERT INTO artigo (titulo, conteudo) VALUES (?,?)';
$requisicao = $this->mysql->prepare($sql);
$requisicao->bind_param('ss', $titulo, $conteudo);
$requisicao->execute();
}
}
Bem o projeto completo está no GitHub: https://github.com/heitorzunta/alura-webapp.git
Desde já agradeço pela ajuda.