fix: PDO 연결 설정 개선 (MySQL 8.0 호환)

- charset utf8 → utf8mb4 변경
- PDO 옵션을 생성자에서 직접 설정
- SET NAMES utf8mb4 초기화 명령 추가
This commit is contained in:
2025-12-10 21:51:05 +09:00
parent aca1767eb9
commit 588bf725ae

View File

@@ -21,12 +21,14 @@ function db_connect(){ //DB연결을 함수로 정의
$db_user = $_ENV['DB_USER'] ?? 'chandj';
$db_pass = $_ENV['DB_PASS'] ?? '';
$dsn = "mysql:host=".$db_host.";dbname=".$db_name.";charset=utf8";
$dsn = "mysql:host=".$db_host.";dbname=".$db_name.";charset=utf8mb4";
try {
$pdo = new PDO($dsn,$db_user,$db_pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,FALSE);
$pdo = new PDO($dsn, $db_user, $db_pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"
]);
} catch (PDOException $Exception) {
die('오류:'.$Exception->getMessage());
}