38395-vm/db/config.php
Flatlogic Bot 4a91088287 sadiq
2026-02-13 15:07:39 +00:00

50 lines
1.7 KiB
PHP

<?php
// AFG CARS - Database Configuration & Path Auto-Detection
define('DB_HOST', 'localhost');
define('DB_NAME', 'afg_cars');
define('DB_USER', 'root');
define('DB_PASS', '');
// Auto-detect the application root path for portable links (XAMPP friendly)
$script_name = str_replace('\\', '/', $_SERVER['SCRIPT_NAME']);
$dir_name = str_replace('\\', '/', dirname(__DIR__));
$doc_root = str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']);
// Calculate the base path relative to document root
$app_path = str_replace($doc_root, '', $dir_name);
// Ensure leading and trailing slashes
$app_path = '/' . trim($app_path, '/') . '/';
if ($app_path === '//') $app_path = '/';
define('APP_URL', $app_path);
function db() {
static $pdo;
if (!$pdo) {
try {
// Connect to MySQL server first
$pdo = new PDO('mysql:host='.DB_HOST.';charset=utf8mb4', DB_USER, DB_PASS, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
// Ensure Database exists
$pdo->exec("CREATE DATABASE IF NOT EXISTS " . DB_NAME);
$pdo->exec("USE " . DB_NAME);
// Automatic Table Creation: Check if 'users' table exists
$tableCheck = $pdo->query("SHOW TABLES LIKE 'users'");
if (!$tableCheck->fetch()) {
$sql_file = __DIR__ . '/database.sql';
if (file_exists($sql_file)) {
$sql = file_get_contents($sql_file);
$pdo->exec($sql);
}
}
} catch (PDOException $e) {
die("Database Connection Error: " . $e->getMessage());
}
}
return $pdo;
}