서버관리

본문 바로가기

서버관리

서버관리

PHP - 윈도MSSQL 연결 방법

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 712회 작성일 19-05-25 20:49

본문

리눅스 php에서 윈도우서버 MS-SQL 사용법
 
* OS RedHat 7.3
* apache_1.3.27
* php-4.3.3
* freetds-0.61-2(http://www.freetds.org/software.html)
 
먼저 freetds 먼저 설치를 합니다.
#tar xvfpz freetds-0.61-2.tar.gz
#./configure --prefix=/usr/local/freetds \
#--with-tdsver=8.0 --enable-msdblib --with-gnu-ld \
#--enable-shared --enable-static
#make
#make install
#vi /usr/local/freetds/etc/freetds.conf
----------------------------------------------------
;[MyServer70]
; host = ntmachine.domain.com
; port = 1433
; tds version = 7.0
[MyServer70]
host = 192.168.1.1(사용 ip 및 도메인)
port = 1433
tds version = 7.0(MS-SQL 2000일경우 8.0 으로)
이렇게 설정 해주시면 freedts설치는 끝난겁니다.
그리고 아파치 및 php가 설치 되어있으면 재설치를 해주시면됩니다.
웹서버를 사용하실때는 먼저 아파치 conf파일을 백업 받으신후. 재설
치를 해야겠죠.
아파치 설치
#tar xvfpz apache_1.3.27.tar.gz
#./configure --prefix=/usr/local/apache/ \
#--enable-rule=SHARED_CORE \
#--enable-module=so
#make
#make install
php 설치
#tar xvfpz php-4.3.3.tar.gz
#./configure --prefix=/usr/local/php \
#--with-apxs=/usr/local/apache/bin/apxs \
#--with-mysql=/usr/local/mysql/ \(mysql도 사용시)
#--with-sybase=/usr/local/freetds \
#--with-config-file-path=/usr/local/php/conf \
#--with-language-korean \
#--with-charset=euc_kr
#--disable-debug \
#--enable-magic-quotes \
#--enable-exec-vars
#--with-zlib \
#--with-gd \
#--with-jpeg \
#--with-png \
#--with-xml \
#--enable-sockets
#make
#make install
#cp php.ini-dist /usr/local/php/conf/php.ini
#vi php.ini
-----------------------------------------------
#Register global Off --> On 으로 변경
;extenstion=php_mssql.dll 이부분을 주석을 푼다.
-----------------------------------------------
아파치 설정 파일.
#vi /usr/local/apache/conf/httpd.conf
-------------------------------------------------------------------
# LoadModule foo_module libexec/mod_foo.so
LoadModule php4_module libexec/libphp4.so(추가)
AddType application/x-tar .tgz
AddType application/x-httpd-php .ph .php .php3 .php4 .cgi .sh .pl. html .htm .shtml .ins .inc(추가)
AddType application/x-httpd-php-source .phps(추가)
AddType image/x-icon .ico
-------------------------------------------------------------------
#/usr/local/apache/bin/apacherctl start
해주면 됩니다. 그리고 나서 소스 연결 부분을 테스트 해봅니다.
$connection=mssql_connect("MyServer","msconn","msconn");
print ("db open");
mssql_connect($connection);
print ("db close");
$status = mssql_select_db("master",$connection);
if (!$status) {
$errNO = mssql_errno($connection);
$errMSG = mssql_errno($connection);
echo("데이터 베이스 연결 실패
");
echo("에러메세지 $errNO : $errMSG
");
exit;
}
$que = mssql_query("select * from sysfiles");
$row = mssql_fetch_row($que);
echo"
$row[0] $row[1] $row[2]";
echo"
성공";
?>
이렇게 테스트 해보시면 됩니다.
 
 
윈도 - IIS - PHP - MySQL 설치 - MS-SQL 연결
 
1. PHP Setup for IIS 설치
    C:\Program Files\ 폴더 아래에 설치하는 경우 사용권한 문제로 동작이 제대로 되지 않으니
    기본으로 제공되는 C:\PHP_Setup_for_IIS 에 설치하는 것이 좋음
 
2. C:\PHP_Setup_for_IIS\MySQL\my.ini 파일을 열어 다음 라인 주석 처리
 
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
 
3. IIS 에 사이트 추가 후 등록정보에서 PHP 설정
 - ISAPI 필터 탭 : 필터 이름 php, 실행 파일 php5isapi.dll 파일을 선택하여 추가
 - 홈 디렉터리 탭 > 구성 > 응용 프로그램 매핑 탭 : 실행파일을 php-cgi.exe 로, 확장명을 .php 로 하여 응용 프로그램 확장명 매핑 추가
 
4. MySQL 접속 시 캐릭터 셋 설정 함수 호출
    mysql_select_db($db, $connect); 함수 호출 후 mysql_query("set names euckr"); 함수 호출
    그누보드의 경우 /lib/common.lib.php 파일의 sql_select_db() 함수를 다음과 같이 수정하면 됨
 
 // DB 선택
function sql_select_db($db, $connect)
{
    $db = @mysql_select_db($db, $connect);
 @mysql_query("set names euckr");
 return $db;
}
 
5. C:\PHP_Setup_for_IIS\PHP5\php.ini 파일에서 extension=php_mssql.dll 이 있는 라인의 주석 해제
    MS-SQL 연결하는 php 코딩은 다음과 같이 하면 됨
<?
$dbhost = 'xxx.xxx.xxx.xxx'; // MS-SQL 의 주소를 쓰시면 됩니다. MS-SQL 2005 에 연결하는 경우는 인스턴스 명을 쓰면 됩니다.
$dbuser = 'xxxxxx'; // MS-SQL DB 접속시 USERID 입니다.
$dbpwd = 'xxxxxx'; // MS-SQL DB 접속시 USERPASSWORD 입니다.
$dbname = 'xxxxxx'; // MS-SQL 의 ODBC 명을 써주시면 됩니다.
$db_connect = mssql_connect($dbhost, $dbuser, $dbpwd);
$status = mssql_select_db($dbname, $db_connect);
if (!$status) {
    $errNO = mssql_errno($db_connect);
    $errMSG = mssql_errno($db_connect);
    echo("데이터베이스 연결에 실패하였읍니다!<br>");
    echo("에러코드 $errNO : $errMSG<br>");
}
else{
    $sql = 'SELECT * FROM tablename ';
    $result = mssql_query($sql, $db_connect);
    $row_count = mssql_num_rows($result);
    for ($i = 0; $i < $row_count; $i++)
    {
        mssql_data_seek($result, $i);
        $row = mssql_fetch_array($result)
 echo $row[0];
 echo $row[1];
 echo $row[2];
 echo $row[3];
    }
}
?>

댓글목록

등록된 댓글이 없습니다.

회원로그인


  • 케이엔아이시스템
  • 대표 : 김현철
  • 경기도 안양시 동안구 부림로80 한양빌딩 601-1201
  • TEL : 010-2890-1451
  • E-mail : khc@knisystem.co.kr
  • 사업자등록번호 : 130-31-39246
Copyright © KNISYSTEM All rights reserved.