리눅스에서 MSSQL 사용하기 (freetds)

리눅스에서 MS-SQL 사용하기


환경 : Centos
APM버전 : apache 2 / php 5 / mysql 4


먼저 freetds 다운을 받아 설치한다
[root@ns1 ~]# wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz


[root@ns1 ~]# tar xvfz freetds-stable.tgz


[root@ns1 ~]# cd freetds-0.82/


[root@ns1 freetds-0.82]# ./configure -prefix=/usr/local/freetds –with-tdsver=8.0 –disable-odbc –disable-debug -enable-dbmfix -enable-msdblib
### PHP 설치시에 freetds 경로를 인식하지 못하는 경우가 있는데 이렬경우에는 파일을 복사해준다
[root@ns1 freetds-0.82]# cp include/tds.h /usr/local/freetds/include/


[root@ns1 freetds-0.82]# cp src/tds/.libs/libtds.a /usr/local/freetds/lib/
#### PHP 컴파일시에 아래와 같이 옵션을 추가해준다.


[root@ns1 php-5.2.5]# ./configure \
생략
–with-mssql=/usr/local/freetds \
-with-sybase=/usr/local/freetds \


phpinfo 페이지에서 mssql이 아래와 같이 모듈이 올라온다



최종 설치가 왼료되었으면 mssql의 함수가 적용되는지 웹페이지서 확인한다


아래 문서를 웹페에지서 확인해본다


<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=euc-kr” />
<title>Untitled Document</title>
</head>


<body>
<?
$aaa = array (
        “mysql_query”,
        “mssql_bind”,
        “mssql_close”,
        “mssql_connect”,
        “mssql_data_seek”,
        “mssql_execute”,
        “mssql_fetch_array”,
        “mssql_fetch_assoc”,
        “mssql_fetch_batch”,
        “mssql_fetch_row”,
        “mssql_field_length”,
        “mssql_field_name”,
        “mssql_field_seek”,
        “mssql_field_type”,
        “mssql_free_result”,
        “mssql_free_statement”,
        “mssql_get_last_message”,
        “mssql_guid_string”,
        “mssql_init”,
        “mssql_min_error_severity”,
        “mssql_next_result”,
        “mssql_num_fields”,
        “mssql_num_rows”,
        “mssql_pconnect”,
        “mssql_query”,
        “mssql_result”,
        “mssql_rows_affected”,
        “mssql_select_db” );


$i=0;
while ($aaa[$i]) {
        if (function_exists($aaa[$i])) {
                echo $aaa[$i]. ” : <font color=green>is exists</font> <br>”;
        }
        else echo $aaa[$i]. ” : <font color=red>is not exists</font> <br>”;
        $i++;
}
?>
</body>
</html>



위의 문서를 출력하면 다음과 같이 정상적으로 함수부분이 사용된다



두번째 방법으로는 freetds의 conf 파일을 이용한 방법으로 mssql의 데이터베이스를 쿼리해 본다



[root@ns1 ~]# vi /usr/local/freetds/etc/freetds.conf


이곳에 아래와 같이 ms-sql서버의 접속정보를 기입한다


[mssql_test]
        host = 192.168.1.10
        port = 1433
        tds version = 7.0
       
     
아래와 같이 php 파일 문서를 작성해서 웹페이지에서 테스트해본다



<?php


putenv(”FREETDSCONF=/usr/local/freetds/etc/freetds.conf”);


putenv(”TDSVER=70″); // tds 버전을 여기다 적어두 된다



$hostname = “mssql_test”; // freetds.conf 에서 적어준걸로..
$username = “test”;
$password = “0000″;
$dbname = “test”;
$connection = mssql_connect($hostname,$username,$password);
mssql_select_db($dbname);
echo(”<table border=1>”);
$query = “select * from zipcode” ;
$query_result = mssql_query($query) ;
$number_rows = mssql_num_rows($query_result) ;
$number_fields = mssql_num_fields($query_result) ;


for ($row_number=0; $row_number<=$number_rows-1; $row_number++)
{
    print “<tr>”;
    for ($field_number=0; $field_number<=$number_fields-1; $field_number++)
    {
        print “<td>” . mssql_result($query_result, $row_number, $field_number) . “</td>” ;
    }
    print “</tr>”;
}


print “</table>”;


mssql_close($connection);


?>


코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호