PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"
]
);
} else {
$pdo = new PDO(
"mysql:host=" . DB_HOST . ";port=" . DB_PORT . ";dbname=" . DB_NAME,
DB_USER,
DB_PASSWORD,
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"
]
);
}
return $pdo;
} catch (PDOException $e) {
error_log("Database connection failed: " . $e->getMessage());
return false;
}
}
// Test connection function
function testConnection() {
echo "
Testing Database Connections
";
// Test webuser connection
echo "Testing webuser connection:
";
$pdo = getDBConnection(false);
if ($pdo) {
echo "✓ webuser connection successful
";
try {
$stmt = $pdo->query("SELECT DATABASE() as current_db, USER() as current_user");
$result = $stmt->fetch();
echo "Current database: " . $result['current_db'] . "
";
echo "Current user: " . $result['current_user'] . "
";
} catch (Exception $e) {
echo "Error querying database: " . $e->getMessage() . "
";
}
} else {
echo "✗ webuser connection failed
";
}
echo "
";
// Test root connection
echo "Testing root connection:
";
$pdo_root = getDBConnection(true);
if ($pdo_root) {
echo "✓ root connection successful
";
try {
$stmt = $pdo_root->query("SHOW DATABASES");
$databases = $stmt->fetchAll();
echo "Available databases: ";
foreach ($databases as $db) {
echo $db['Database'] . " ";
}
echo "
";
} catch (Exception $e) {
echo "Error querying databases: " . $e->getMessage() . "
";
}
} else {
echo "✗ root connection failed
";
}
}
// Uncomment the line below to test connections when accessing this file directly
// if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) testConnection();
?>