feat: support root database connection fallback and align env vars

This commit is contained in:
Andrie
2026-06-12 10:59:00 +07:00
parent d3d263d6d5
commit 05f18aeab1
4 changed files with 20 additions and 2 deletions
+6
View File
@@ -11,6 +11,12 @@ start_session();
mysqli_report(MYSQLI_REPORT_OFF);
$conn = @new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
if ($conn->connect_error && DB_USER !== (getenv('DB_USER') ?: 'root')) {
$fallback_user = getenv('DB_USER') ?: 'root';
$fallback_pass = getenv('DB_PASS') ?: '';
$conn = @new mysqli(DB_HOST, $fallback_user, $fallback_pass, DB_NAME, DB_PORT);
}
if ($conn->connect_error) {
http_response_code(500);
error_log('Project 01 database connection failed: ' . $conn->connect_error);
+2 -2
View File
@@ -17,7 +17,7 @@ define('MAX_LOGIN_ATTEMPTS', 5);
define('LOCKOUT_MINUTES', 15);
define('DB_HOST', getenv('DB_HOST') ?: 'localhost');
define('DB_USER', getenv('DB_USER') ?: 'root');
define('DB_PASS', getenv('DB_PASS') ?: '');
define('DB_USER', getenv('APP_DB_USER') ?: (getenv('DB_USER') ?: 'root'));
define('DB_PASS', getenv('APP_DB_PASSWORD') ?: (getenv('DB_PASS') ?: ''));
define('DB_NAME', getenv('DB_WEBGIS_NAME') ?: (getenv('DB_NAME') ?: 'db_webgis'));
define('DB_PORT', (int)(getenv('DB_PORT') ?: 3307));
+6
View File
@@ -5,6 +5,12 @@ if (!defined('DB_HOST')) require_once __DIR__ . '/config.php';
mysqli_report(MYSQLI_REPORT_OFF);
$conn = @new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
if ($conn->connect_error && DB_USER !== (getenv('DB_USER') ?: 'root')) {
$fallback_user = getenv('DB_USER') ?: 'root';
$fallback_pass = getenv('DB_PASS') ?: '';
$conn = @new mysqli(DB_HOST, $fallback_user, $fallback_pass, DB_NAME, DB_PORT);
}
if ($conn->connect_error) {
error_log('Database connection failed: ' . $conn->connect_error);
http_response_code(500);
+6
View File
@@ -17,6 +17,12 @@ function check_database(string $label, string $database, ?string $user = null, ?
$connection = @new mysqli($host, $username, $dbPassword, $database, $port);
if ($connection->connect_error && $username !== env_value('DB_USER', 'root')) {
$username = env_value('DB_USER', 'root');
$dbPassword = env_value('DB_PASS', '');
$connection = @new mysqli($host, $username, $dbPassword, $database, $port);
}
if ($connection->connect_error) {
error_log("Health check database failed ({$label}): " . $connection->connect_error);
return [