From 588bf725ae30880b74e2cf66b00f2a7aa4f13fc4 Mon Sep 17 00:00:00 2001 From: hskwon Date: Wed, 10 Dec 2025 21:51:05 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20PDO=20=EC=97=B0=EA=B2=B0=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EA=B0=9C=EC=84=A0=20(MySQL=208.0=20=ED=98=B8?= =?UTF-8?q?=ED=99=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - charset utf8 → utf8mb4 변경 - PDO 옵션을 생성자에서 직접 설정 - SET NAMES utf8mb4 초기화 명령 추가 --- lib/mydb.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/mydb.php b/lib/mydb.php index 63a062eb..89f0f8e3 100644 --- a/lib/mydb.php +++ b/lib/mydb.php @@ -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()); }