mirror of
https://github.com/myronblair/do-server-config
synced 2026-07-28 05:22:53 -05:00
[orbis] Weekly backup 2026-07-07 — 318 files changed, 48597 insertions(+), 7 deletions(-)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/../../includes/config.php';
|
||||
|
||||
class Database {
|
||||
private static ?PDO $pdo = null;
|
||||
|
||||
public static function get(): PDO {
|
||||
if (self::$pdo === null) {
|
||||
$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8mb4';
|
||||
self::$pdo = new PDO($dsn, DB_USER, DB_PASS, [
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
PDO::ATTR_EMULATE_PREPARES => false,
|
||||
]);
|
||||
}
|
||||
return self::$pdo;
|
||||
}
|
||||
|
||||
public function query(string $sql, array $params = []): PDOStatement {
|
||||
$stmt = self::get()->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
return $stmt;
|
||||
}
|
||||
|
||||
public function fetch(string $sql, array $params = []): ?array {
|
||||
$row = $this->query($sql, $params)->fetch();
|
||||
return $row ?: null;
|
||||
}
|
||||
|
||||
public function fetchAll(string $sql, array $params = []): array {
|
||||
return $this->query($sql, $params)->fetchAll();
|
||||
}
|
||||
|
||||
public function insert(string $table, array $data) {
|
||||
$columns = implode(', ', array_keys($data));
|
||||
$placeholders = ':' . implode(', :', array_keys($data));
|
||||
$this->query("INSERT INTO {$table} ({$columns}) VALUES ({$placeholders})", $data);
|
||||
return self::get()->lastInsertId();
|
||||
}
|
||||
|
||||
public function update(string $table, array $data, string $where, array $whereParams = []) {
|
||||
$set = [];
|
||||
foreach (array_keys($data) as $column) {
|
||||
$set[] = "{$column} = :{$column}";
|
||||
}
|
||||
$sql = "UPDATE {$table} SET " . implode(', ', $set) . " WHERE {$where}";
|
||||
return $this->query($sql, array_merge($data, $whereParams))->rowCount();
|
||||
}
|
||||
}
|
||||
|
||||
function db(): Database {
|
||||
static $instance = null;
|
||||
if ($instance === null) {
|
||||
$instance = new Database();
|
||||
}
|
||||
return $instance;
|
||||
}
|
||||
Reference in New Issue
Block a user