Files
api-btekno/bin/test_db_connection.php

81 lines
2.3 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
/**
* Script untuk test koneksi database
* Usage: php bin/test_db_connection.php
*/
require __DIR__ . '/../vendor/autoload.php';
use App\Config\AppConfig;
use App\Support\Database;
// Load environment variables
AppConfig::loadEnv(__DIR__ . '/..');
echo "=== Test Koneksi Database ===\n\n";
// Get database connection
$dbHost = AppConfig::get('DB_HOST', 'localhost');
$dbName = AppConfig::get('DB_NAME', '');
$dbUser = AppConfig::get('DB_USER', '');
$dbPass = AppConfig::get('DB_PASS', '');
echo "Konfigurasi Database:\n";
echo " Host: {$dbHost}\n";
echo " Database: {$dbName}\n";
echo " User: {$dbUser}\n";
echo " Password: " . (empty($dbPass) ? '(kosong)' : str_repeat('*', strlen($dbPass))) . "\n\n";
if (empty($dbName) || empty($dbUser)) {
echo "❌ Error: Database credentials tidak lengkap di .env\n";
echo " Pastikan DB_NAME dan DB_USER sudah di-set\n";
exit(1);
}
try {
echo "Mencoba koneksi ke database...\n";
$db = Database::getConnection($dbHost, $dbName, $dbUser, $dbPass);
echo "✅ Koneksi database BERHASIL!\n\n";
// Test query sederhana
echo "Test query sederhana...\n";
$stmt = $db->query("SELECT VERSION() as version, DATABASE() as current_db, NOW() as server_time");
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo " MySQL Version: {$result['version']}\n";
echo " Current Database: {$result['current_db']}\n";
echo " Server Time: {$result['server_time']}\n\n";
// Cek tabel yang ada
echo "Mengecek tabel yang ada...\n";
$stmt = $db->query("SHOW TABLES");
$tables = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (empty($tables)) {
echo " ⚠️ Tidak ada tabel di database ini\n";
} else {
echo " ✅ Ditemukan " . count($tables) . " tabel:\n";
foreach ($tables as $table) {
echo " - {$table}\n";
}
}
echo "\n=== Test Selesai ===\n";
} catch (\PDOException $e) {
echo "❌ Error: Koneksi database GAGAL!\n";
echo " Pesan Error: " . $e->getMessage() . "\n";
echo "\nKemungkinan penyebab:\n";
echo " 1. Database server tidak berjalan\n";
echo " 2. Host/Port salah\n";
echo " 3. Username/Password salah\n";
echo " 4. Database tidak ada\n";
echo " 5. User tidak punya akses ke database\n";
exit(1);
}