En este capítulo vamos a ver como hacer consultas SQL a nuestra base de datos, para lo cual vamos a trabajar con el archivo Contact.php dentro de la carpeta Models.
Models/Contact.php
<?php
namespace App\Models;
use mysqli;
class Contact {
// Propiedades que recogen los datos de acceso a la BBDD
protected $db_host = DB_HOST;
protected $db_user = DB_USER;
protected $db_pass = DB_PASS;
protected $db_name = DB_NAME;
// Propiedad que recoge la conexión a la base de datos
protected $connection;
// Propiedad que recoge la consulta a la BBDD
protected $query;
public function __construct(){
$this->connection();
}
// Método encargado de realizar la conexión
public function connection(){
// Conexión con mysqli
$this->connection = new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name);
if($this->connection->connect_error)
{
die('Error de conexión: ' . $this->connection->connect_error);
}
}
// Método que hace la consulta a la base de datos
public function query($sql){
$this->query = $this->connection->query($sql);
return $this;
}
// Método que recupera el primer registro de la consulta a la base de datos
public function first(){
return $this->query->fetch_assoc();
}
// Método que recupera todos los registros de la consulta a la base de datos
public function get(){
return $this->query->fetch_all(MYSQLI_ASSOC);
}
}
Hemos agregado un nuevo método denominado query() el cual va a hacer la consulta a la base de datos.
Ahora vamos a trabajar en nuestro archivo HomeController.php.
Controllers/HomeController.php
<?php
namespace App\Controllers;
use App\Models\Contact;
class HomeController extends Controller
{
public function index()
{
$contactModel = new Contact();
// Le decimos al modelo que haga la siguiente consulta
return $contactModel->query("SELECT * FROM contacts")->get();
// Método que se encarga de incluir toda la lógica necesaria para mostrar contenido
return $this->view('home', [
'title' => 'Home',
'description' => 'Esta es la página Home'
]);
}
}