[PHP] mssql 사용법

WEB 2014. 11. 4. 22:45

<?PHP
 function ChkCng2UTF( $utfStr )
 {
  if( iconv("UTF-8","UTF-8",$utfStr) == $utfStr )
   return $utfStr;
  else
   return iconv( "EUC-KR", "UTF-8", $utfStr );
 }
 function ChkCng2EUC( $str )
 {
  if( iconv("EUC-KR","EUC-KR",$str) == $str )
   return $str;
  else
   return iconv( "UTF-8", "EUC-KR", $str );
 }
 
 $conn = mssql_connect( "192.168.0.xxx", "계정", "비밀번호" );
 if( $conn )
  mssql_select_db( "DB명" );
 else
  echo "mssql connect error!";
 
 
 $qry = "SELECT * FROM TEST WHERE 컬럼명 like '%테스트%'";
$result = mssql_query( ChkCng2EUC($qry) ) or die( mssql_get_last_message() . "<BR>" . $qry );
 for( $i = 0; $row = mssql_fetch_array($result); $i++ )
 {
  echo $i . " - " .  ChkCng2UTF($row[컬럼명 ]) . "<br>";
 }

?>

 

보통 mssql이 euc-kr 사용하니 쿼리를 보내거다 결과를 받을때 변환을 해서 주고 받자.

 

※추가

단순하게 위처럼 사용시 문제가 발생할수 있다 ( ChkCng2EUC )

일반적인 쿼리문은 별 문제 없지만 프로시저 사용시 문제가 생길수 있다

근본적인 해결방법은 freetds 자체 언어를 변경 해주어야 한다

 

#vi /etc/php.ini

   mssql.charset = "UTF-8"

#vi /etc/freetds.conf

[global]
;tds version = 4.2
tds version = 8.0
client charset = UTF-8


mssql.charset = "UTF-8"


출처 : http://php.net/manual/en/function.mssql-query.php

 

 

Posted by 꼬장e
,