29 lines
771 B
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());
|
|
}
|
|
} |