summaryrefslogtreecommitdiff
path: root/src/Database.php
blob: e84abc1fbaedc2421261106c28a9ab8e273aaf14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

namespace App;

use PDO;
use PDOStatement;

class Database
{
  use Singleton;

  private \PDO $connection;

  public function __construct()
  {
    #$driver = $_ENV['DB_DRIVER'] ?? 'pgsql';
    $host = $_ENV['DB_HOST'] ?? 'localhost';
    $port = $_ENV['DB_PORT'] ?? 5432;
    $dbname = $_ENV['DB_NAME'];
    $user = $_ENV['DB_USER'];
    $password = $_ENV['DB_PASSWORD'];

    $this->connection = new \PDO(
      "pgsql:host=$host;port=$port;dbname=$dbname",
      $user,
      $password,
      [
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
      ]
    );
  }

  /**
   * @param array<mixed> $parameters
   */
  public function query(string $query, array $parameters = []): \PDOStatement|false
  {
    $statement = $this->connection->prepare($query);
    $statement->execute($parameters);

    return $statement;
  }
}