35562-vm/db/config.php

29 lines
771 B
PHP

<?php
// db/config.php — USING SQLITE (no DB server needed)
function db()
{
static $pdo = null;
if ($pdo) return $pdo;
$dbFile = __DIR__ . '/../database.sqlite';
// Ensure db directory exists
if (!is_dir(dirname($dbFile))) {
mkdir(dirname($dbFile), 0755, true);
}
try {
$pdo = new PDO("sqlite:$dbFile");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
// Enable foreign keys & UTF-8
$pdo->exec("PRAGMA foreign_keys = ON;");
$pdo->exec("PRAGMA encoding = 'UTF-8';");
return $pdo;
} catch (PDOException $e) {
throw new Exception("SQLite error: " . $e->getMessage());
}
}