32 lines
991 B
PHP
32 lines
991 B
PHP
<?php
|
|
// backend/config/db.php
|
|
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use Dotenv\Dotenv;
|
|
|
|
// Load environment variables from .env (located in the project root)
|
|
$dotenv = Dotenv::createImmutable(__DIR__ . '/../..');
|
|
try {
|
|
$dotenv->load();
|
|
} catch (Exception $e) {
|
|
// If .env is missing, we continue and rely on system env or defaults
|
|
}
|
|
|
|
$host = $_ENV['DB_HOST'] ?? 'localhost';
|
|
$dbname = $_ENV['DB_NAME'] ?? 'jordan_bot_db';
|
|
$username = $_ENV['DB_USER'] ?? 'root';
|
|
$password = $_ENV['DB_PASS'] ?? '';
|
|
|
|
try {
|
|
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
|
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
|
} catch (PDOException $e) {
|
|
// In production, you should log this error and show a generic message
|
|
http_response_code(500);
|
|
echo json_encode(['success' => false, 'message' => 'Database connection failed']);
|
|
exit;
|
|
}
|
|
?>
|