41 lines
1.2 KiB
PHP
41 lines
1.2 KiB
PHP
<?php
|
|
// Simple function to load .env variables into $_ENV
|
|
function loadEnv($file) {
|
|
if (!file_exists($file)) return false;
|
|
$lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
|
foreach ($lines as $line) {
|
|
if (strpos(trim($line), '#') === 0) continue;
|
|
list($name, $value) = explode('=', $line, 2);
|
|
$name = trim($name);
|
|
$value = trim($value);
|
|
if (!array_key_exists($name, $_SERVER) && !array_key_exists($name, $_ENV)) {
|
|
putenv(sprintf('%s=%s', $name, $value));
|
|
$_ENV[$name] = $value;
|
|
$_SERVER[$name] = $value;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
loadEnv(__DIR__ . '/.env');
|
|
|
|
$host = $_ENV['DB_HOST'] ?? '127.0.0.1';
|
|
$db = $_ENV['DB_NAME'] ?? 'webgis_jalan';
|
|
$user = $_ENV['DB_USER'] ?? 'root';
|
|
$pass = $_ENV['DB_PASS'] ?? '';
|
|
$charset = 'utf8mb4';
|
|
|
|
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
|
|
$options = [
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
PDO::ATTR_EMULATE_PREPARES => false,
|
|
];
|
|
|
|
try {
|
|
$pdo = new PDO($dsn, $user, $pass, $options);
|
|
} catch (\PDOException $e) {
|
|
throw new \PDOException($e->getMessage(), (int)$e->getCode());
|
|
}
|
|
?>
|