dragon-forks/kernel/database.php
2025-07-17 20:31:05 +02:00

46 lines
No EOL
1.4 KiB
PHP

<?php
class Database {
private $pdo;
private $numqueries = 0;
private $dbsettings;
public function __construct() {
include(PATH_ROOT.'config.php');
$this->dbsettings = $dbsettings;
$this->connect();
}
private function connect() {
$dsn = "mysql:host={$this->dbsettings['server']};dbname={$this->dbsettings['name']};charset=utf8";
try {
$this->pdo = new PDO($dsn, $this->dbsettings['user'], $this->dbsettings['pass']);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection to databasse failed.");
}
}
public function doquery($table, $query, $params = []) {
$query = str_replace("{{table}}", $this->dbsettings["prefix"] . "_" . $table, $query);
$stmt = $this->pdo->prepare($query);
$stmt->execute($params);
$this->numqueries++;
return $stmt;
}
public function checkUnique($table, $field, $value) {
$query = "SELECT * from {{table}} where {{field}} = :fieldValue";
$query = str_replace("{{field}}", $field, $query);
$stmt = $this->doquery($table, $query, ['fieldValue' => $value]);
return $stmt->fetch(PDO::FETCH_ASSOC) != null;
}
public function getNumQueries() {
return $this->numqueries;
}
public function getSecretWord() {
return $this->dbsettings["secretword"];
}
}