Files
Krystie 092a8bc7ce refactor: organize codebase and remove redundant files
- Removed all backup/duplicate files
- Removed test files from root
- Consolidated documentation to /docs/
- Moved scripts to /scripts/
- Renamed f_* directories (removed prefix)
- Organized icons and assets
- Removed unused vendor directories
- Cleaned up redundant config files
2026-03-30 16:34:45 -07:00

41 lines
1.1 KiB
PHP

<?php
// Database utility functions
if (!defined("_VALID_ACCESS")) { exit("Direct access not allowed"); }
function get_db_connection() {
global $db;
if ($db === null) {
try {
$dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4";
$db = 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
]);
} catch (PDOException $e) {
error_log("Database connection failed: " . $e->getMessage());
throw new Exception("Database connection failed");
}
}
return $db;
}
function db_query($sql, $params = []) {
$db = get_db_connection();
$stmt = $db->prepare($sql);
$stmt->execute($params);
return $stmt;
}
function db_fetch($sql, $params = []) {
return db_query($sql, $params)->fetch();
}
function db_fetch_all($sql, $params = []) {
return db_query($sql, $params)->fetchAll();
}
function db_execute($sql, $params = []) {
return db_query($sql, $params)->rowCount();
}