2015-03-12
PHP에서 MYSQL로 된 DB의 TABLE에 한글을 집어넣을려고 할때..
PHP페이지도 UTF-8이고, MYSQL의 DB, TABLE, COLUMN도 UTF8인데도.. 한글이 깨지는 경우가 있다..
일단 확인부터 해보자.

우선 PHP페이지에서 자신이 보내는 쿼리의 한글문구가 제대로된 UTF-8로 되어 있는지 확인해 보자
$send_msg = "한tothe글";
ECHO mb_detect_encoding($send_msg );
필자의 경우 utf-8이 맞다..

그리고 각 DB, TABLE, COLUMN의 캐릭터셋도 확인해 보자.. 전부 utf8로 되어 있으면 된다.

마지막으로 MYSQL에서
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
각종 캐릿터셋 설정값들도 살펴보자.

이 전부가 utf-8, utf8로 되어 있는데도.. 한글 입력이 깨진다면...

해당 쿼리가 사용되는 페이지에서 직접 셋팅을 입력해준뒤에 입력하면 해결 된다.
$qry = "SET character_set_connection = 'utf8'"; $result= $conn->query( $qry );
$qry = "SET character_set_results = 'utf8'"; $result= $conn->query( $qry );
$qry = "SET character_set_client = 'utf8'"; $result= $conn->query( $qry );
필자는 여기까지 해보니 되었다.