22 lines
748 B
PHP
22 lines
748 B
PHP
<?php
|
|
function tools_build_pdo(): PDO
|
|
{
|
|
$cfg = require __DIR__ . '/../src/config.php';
|
|
if (!is_array($cfg)) {
|
|
throw new RuntimeException('DB config did not return an array.');
|
|
}
|
|
$required = ['db_host', 'db_name', 'db_user', 'db_pass', 'db_charset'];
|
|
foreach ($required as $key) {
|
|
if (!array_key_exists($key, $cfg)) {
|
|
throw new RuntimeException('Missing DB config key: ' . $key);
|
|
}
|
|
}
|
|
$dsn = "mysql:host={$cfg['db_host']};dbname={$cfg['db_name']};charset={$cfg['db_charset']}";
|
|
$options = [
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
];
|
|
|
|
return new PDO($dsn, $cfg['db_user'], $cfg['db_pass'], $options);
|
|
}
|