38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
// Function to load .env if not loaded (though session.php usually handles it)
|
||
|
|
function loadEnvOnly() {
|
||
|
|
$envFile = dirname(__DIR__) . '/.env';
|
||
|
|
if (file_exists($envFile) && empty($_ENV['DB_HOST'])) {
|
||
|
|
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||
|
|
foreach ($lines as $line) {
|
||
|
|
if (strpos($line, '=') !== false && strpos($line, '#') !== 0) {
|
||
|
|
list($key, $value) = explode('=', $line, 2);
|
||
|
|
$_ENV[trim($key)] = trim($value);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function db_connect(){
|
||
|
|
loadEnvOnly();
|
||
|
|
|
||
|
|
$db_host = $_ENV['DB_HOST'] ?? 'mysql';
|
||
|
|
$db_name = $_ENV['DB_NAME'] ?? 'chandj';
|
||
|
|
$db_user = $_ENV['DB_USER'] ?? 'root';
|
||
|
|
$db_pass = $_ENV['DB_PASS'] ?? 'root';
|
||
|
|
|
||
|
|
$dsn = "mysql:host=".$db_host.";dbname=".$db_name.";charset=utf8mb4";
|
||
|
|
|
||
|
|
try {
|
||
|
|
$pdo = new PDO($dsn, $db_user, $db_pass, [
|
||
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||
|
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||
|
|
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4, sql_mode='NO_ENGINE_SUBSTITUTION'"
|
||
|
|
]);
|
||
|
|
} catch (PDOException $Exception) {
|
||
|
|
die('Error:'.$Exception->getMessage());
|
||
|
|
}
|
||
|
|
return $pdo;
|
||
|
|
}
|
||
|
|
?>
|