Initial commit: 교육 프로젝트 배포
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/**
|
||||
* db_conn.php - MariaDB PDO
|
||||
*/
|
||||
|
||||
// 세션 쿠키 도메인을 서브도메인 공유가 가능하도록 설정
|
||||
session_set_cookie_params(0, '/', '.baroncs.co.kr');
|
||||
|
||||
// 세션이 시작되지 않았다면 시작
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
function db_conn(): PDO
|
||||
{
|
||||
static $pdo = null;
|
||||
if ($pdo !== null) { return $pdo; }
|
||||
|
||||
$host = 'localhost';
|
||||
$port = 3306;
|
||||
$dbname = 'baronhomep';
|
||||
$user = 'baronhomep';
|
||||
$pass = 'baron3840!!';
|
||||
$charset = 'utf8mb4';
|
||||
|
||||
$dsn = "mysql:host={$host};dbname={$dbname};charset={$charset}";
|
||||
|
||||
$options = [
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
PDO::ATTR_EMULATE_PREPARES => false,
|
||||
PDO::ATTR_TIMEOUT => 5,
|
||||
];
|
||||
|
||||
try {
|
||||
$pdo = new PDO($dsn, $user, $pass, $options);
|
||||
$pdo->exec("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");
|
||||
} catch (PDOException $e) {
|
||||
error_log('[DB_CONN ERROR] ' . $e->getMessage());
|
||||
throw new RuntimeException('DB error: ' . $e->getMessage());
|
||||
}
|
||||
return $pdo;
|
||||
}
|
||||
|
||||
// 직접 실행 시 연결 테스트
|
||||
if (basename(__FILE__) === basename($_SERVER['SCRIPT_FILENAME'] ?? '')) {
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
echo '<h2>DB 연결 테스트</h2>';
|
||||
try {
|
||||
$pdo = db_conn();
|
||||
$ver = $pdo->query('SELECT VERSION()')->fetchColumn();
|
||||
echo "<p style='color:green'>연결 성공 - MariaDB {$ver}</p>";
|
||||
$tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
|
||||
echo '<p>테이블 (' . count($tables) . '개):</p><ul>';
|
||||
foreach ($tables as $t) {
|
||||
echo '<li>' . htmlspecialchars($t) . '</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
} catch (Exception $e) {
|
||||
echo "<p style='color:red'>실패: " . htmlspecialchars($e->getMessage()) . "</p>";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user