포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
DB를 mssql 사용시 한글 문제
2014.04.09 23:28
@카르마 님의 통합검색 확장모듈을 테스트 하면서 알게된 사실인데 mssql사용자인 경우 php에서 직접 쿼리를 날릴때 조건문에 한글이 포함되어 있으면 올바른 결과를 얻지 못하더군요. 물론 영문일경우 아무 문제가 없습니다.
select TOP 10 keyword, count(*) as count from xe_search where keyword like '%테%' group by keyword order by count desc
- 이와 같은 쿼리문을 날렸을경우 이에 해당하는 컬럼이 존재해도 전혀 결과를 산출해내지 못합니다.
이를 해결하기 위해서 db커낵션 부분에 'CharacterSet' => 'UTF-8' 구문을 추가해 줘야 할꺼 같습니다. 해당 구문을 추가해주면 조건문에 한글이 포함되어 있어도 정상적인 결과를 얻을 수 있습니다.
./classes/db/DBMssql.class.php
$result = @sqlsrv_connect($connection["db_hostname"], array('Database' => $connection["db_database"], 'UID' => $connection["db_userid"], 'PWD' => $connection["db_password"], 'CharacterSet' => 'UTF-8'));