Para se conectar a um banco de dados do tipo MySQL, por exemplo, é necessário tanto um driver quanto algumas linhas de código. Um driver é uma aplicação responsável por conversar diretamente com um determinado banco de dados, assim podemos escrever algumas linhas de códigos e enviar informações cruciais para a nossa transação.
O PDO é um recurso muito popular e utilizado amplamente no PHP, bem como em frameworks atuais. Não se trata apenas de uma classe de conexão, mas sim de uma opção orientada a objetos e que nos permite tratar as operações de forma segura utilizando o recurso de Prepared Statement.
Bem, para se conectar a um banco MySQL, podemos utilizar a classe abaixo.
<?php
class Database
{
    private string $host;
    private string $base;
    private string $user;
    private string $pass;
    private PDO $pdo;
    /**
     * Inicializa as propriedades da classe e chama o método de conexão
     *
     * @return void
     */
    public function __construct()
    {
        $this->host = 'localhost'; //127.0.0.1
        $this->base = 'aula_php_pdo';
        $this->user = 'root';
        $this->pass = '';
        $this->connect();
    }
    /**
     * Tenta se conectar ao banco de dados
     *
     * @return void
     */
    private function connect(): void
    {
        try {
            $str = sprintf('mysql:host=%s;dbname=%s', $this->host, $this->base);
            $this->pdo = new PDO($str, $this->user, $this->pass);
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $ex) {
            print_r($ex->getMessage());
        }
    }
    public function query(string $str, array $params)
    {
        $stmt = $this->pdo->prepare($str);
        $stmt->execute($params);
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
Agora podemos fazer uma nova instância desta classe e chamar os métodos que criamos anteriormente.
<?php
require_once('Database.php');
$database = new Database();
$sql = 'SELECT id, nome FROM aluno ORDER BY :order ASC';
$result = $database->query($sql, [':order' => 'nome']);
echo '<pre>';
print_r($result);
echo '</pre>';Note que para a conexão, tudo o que precisamos fazer é dar um new PDO e passar os parâmetros. No exemplo que criamos, utilizamos a orientação à objetos para criar a nossa classe e métodos que interagem com o PDO.
Para conferir com mais detalhes como o nosso código foi criado, assista a nossa videoaula abaixo.













