<?php
// Test DB Connection & Environment Diagnostics
header('Content-Type: text/html; charset=utf-8');
require_once __DIR__ . '/config/config.php';

echo "<h2>🔧 Environment & Database Diagnostic Tool</h2>";
echo "<p><strong>HTTP_HOST:</strong> " . htmlspecialchars($_SERVER['HTTP_HOST'] ?? 'None') . "</p>";
echo "<p><strong>REQUEST_URI:</strong> " . htmlspecialchars($_SERVER['REQUEST_URI'] ?? 'None') . "</p>";
echo "<p><strong>SCRIPT_NAME:</strong> " . htmlspecialchars($_SERVER['SCRIPT_NAME'] ?? 'None') . "</p>";
echo "<p><strong>APP_URL:</strong> " . htmlspecialchars(APP_URL) . "</p>";
echo "<p><strong>DB_HOST:</strong> " . htmlspecialchars(DB_HOST) . "</p>";
echo "<p><strong>DB_PORT:</strong> " . htmlspecialchars(DB_PORT) . "</p>";
echo "<p><strong>DB_NAME:</strong> " . htmlspecialchars(DB_NAME) . "</p>";
echo "<p><strong>DB_USER:</strong> " . htmlspecialchars(DB_USER) . "</p>";

echo "<hr><h3>Testing PDO Connection...</h3>";

$dsn = "mysql:host=" . DB_HOST . ";port=" . DB_PORT . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET;
try {
    $pdo = new PDO($dsn, DB_USER, DB_PASS, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ]);
    echo "<p style='color:green; font-weight:bold;'>✅ Database Connected Successfully!</p>";
    
    // Check tables
    $stmt = $pdo->query("SHOW TABLES");
    $tables = $stmt->fetchAll(PDO::FETCH_COLUMN);
    echo "<p>Found <strong>" . count($tables) . "</strong> tables in <code>" . DB_NAME . "</code>:</p>";
    echo "<ul>";
    foreach ($tables as $t) {
        echo "<li>" . htmlspecialchars($t) . "</li>";
    }
    echo "</ul>";
} catch (PDOException $e) {
    echo "<p style='color:red; font-weight:bold;'>❌ Connection Failed: " . htmlspecialchars($e->getMessage()) . "</p>";
    
    echo "<hr><h4>Trying fallback to 127.0.0.1 instead of localhost:</h4>";
    $dsn2 = "mysql:host=127.0.0.1;port=" . DB_PORT . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET;
    try {
        $pdo2 = new PDO($dsn2, DB_USER, DB_PASS, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        ]);
        echo "<p style='color:green; font-weight:bold;'>✅ Connected via 127.0.0.1! (DB_HOST ควรเปลี่ยนเป็น 127.0.0.1)</p>";
    } catch (PDOException $e2) {
        echo "<p style='color:red;'>127.0.0.1 also failed: " . htmlspecialchars($e2->getMessage()) . "</p>";
    }
}
