Os erros são os seguintes:
Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root@localhost'@'localhost' (using password: NO) in C:\xampp\htdocs\blog\config.php on line 3
Warning: mysqli::set_charset(): Couldn't fetch mysqli in C:\xampp\htdocs\blog\config.php on line 4 Banco conectado Fatal error: Uncaught ArgumentCountError: Too few arguments to function Artigo::construct(), 0 passed in C:\xampp\htdocs\blog\index.php on line 5 and exactly 1 expected in C:\xampp\htdocs\blog\Artigo.php:7 Stack trace: #0 C:\xampp\htdocs\blog\index.php(5): Artigo->construct() #1 {main} thrown in C:\xampp\htdocs\blog\Artigo.php on line 7
Estou fazendo o curso na rede da empresa. Não sei se o problema pode ser alguma restrição de acesso, ou erro no meu código mesmo.
Códigos abaixo:
config.php
<?php
$mysql = new mysqli('localhost', 'root@localhost', '', 'blog');
$mysql->set_charset('utf8');
if($mysql == TRUE) {
echo "Banco conectado";
} else {
echo "Erro na conexão";
}
?>
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;
}
}
?>
index.php
<?php
require 'config.php';
require_once 'Artigo.php';
$artigo = new Artigo();
$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="<?php echo $artigo['link'] ?>">
<?php echo $artigo['titulo'] ?>
</a>
</h2>
<p>
<?php echo $artigo['conteudo'] ?>
</p>
<?php endforeach; ?>
</div>
</body>
</html>