wishthis/includes/classes/database.php

51 lines
1.1 KiB
PHP
Raw Normal View History

2021-11-12 16:01:04 +00:00
<?php
/**
* database.php
*
* Establishes a database connection using its credentials.
*
* @author Jay Trees <github.jay@grandel.anonaddy.me>
*/
namespace wishthis;
class Database
{
public \PDO $pdo;
public function __construct(
public string $host,
public string $database,
public string $user,
public string $password,
) {
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->database . ';port=3306;charset=utf8';
$options = array();
try {
$this->pdo = new \PDO($dsn, $this->user, $this->password, $options);
} catch (\PDOException $PDOE) {
throw new \PDOException($PDOE->getMessage(), (int)$PDOE->getCode());
}
}
2021-11-15 08:45:36 +00:00
2021-11-15 11:32:44 +00:00
public function query(string $query)
2021-11-15 08:45:36 +00:00
{
2021-11-15 11:32:44 +00:00
return $this->pdo->query(
$query,
\PDO::FETCH_ASSOC
);
2021-11-15 08:45:36 +00:00
}
2021-11-15 11:20:55 +00:00
public function getOption(string $key): string
{
2021-11-15 11:32:44 +00:00
$option = $this->query(
2021-11-15 11:20:55 +00:00
'SELECT * FROM `options`
2021-11-15 11:32:44 +00:00
WHERE `key` = "' . $key . '";'
2021-11-15 11:20:55 +00:00
)->fetch();
return $option['value'];
}
2021-11-12 16:01:04 +00:00
}