Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
* HanIRCÀÇ #coffeenix ¹æ
[ Àåºñ ¹× ȸ¼± ÈÄ¿ø ]
HOME > ÇÁ·Î±×·¡¹Ö / °³¹ß > À¥ ÇÁ·Î±×·¡¹Ö / PHP µµ¿ò¸»
°Ë»ö : »çÀÌÆ® WHOIS À¥¼­¹ö Á¾·ù


  php¿¡¼­ MSSQL »ç¿ë ÀÛ¼ºÀÏ : 2005/12/28 00:22
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 29999
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      Á¦  ¸ñ : php¿¡¼­ MSSQL »ç¿ë
    ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )
    ÀÛ¼ºÀÏ : 2005.12.27(È­)
    ¼öÁ¤ÀÏ : 2007.07.23(¿ù) Linux¿¡¼­ ¼³Ä¡ Ãß°¡

    Unix/Linux¿¡¼­ FreeTDS ¶óÀ̺귯¸®¸¦ »ç¿ëÇؼ­ MS SQL°ú Sybase DB¸¦ Çڵ鸵ÇÒ ¼ö ÀÖ´Ù. FreeTDS´Â MSSQL¿¡¼­ »ç¿ëÇÏ´Â TDS(Tabular Data Stream) ÇÁ·ÎÅäÄÝÀÇ ¿ÀÇ ¼Ò½º ¹öÀüÀ̶ó°í º¸¸éµÈ´Ù. ÇöÀç TDS 4.2(System 10ÀÌÀü Sybase, MS SQL 6.x), 5.0(Sybase), 7.0, 8.0(MS SQL 2000¿¡ ÇØ´ç) ¹öÀüÀ» Áö¿øÇÑ´Ù.

    1. FreeTDS ¼³Ä¡ (FreeBSD ¿¡¼­)

    MS SQLÀ» »ç¿ëÇϱâ À§ÇÑ Unix/Linux ¶óÀ̺귯¸® FreeTDS( http://www.freetds.org/ )ÀÇ php ¸ðµâ ¼³Ä¡´Â FreeBSD¸¦ ±âÁØÀ¸·Î ¼³¸íÇÑ´Ù.

     
    # cd /usr/ports/databases/php5-mssql ¶Ç´Â /usr/ports/databases/php4-mssql
    # make
    # make install
     


    /usr/local/etc/php/extensions.ini ¿¡ extension=mssql.so ÀÌ Ãß°¡µÇ¾î ÀÖÀ» °ÍÀÌ°í, apache Àç½ÇÇàÀ¸·Î À¥ÆäÀÌÁö(php)¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

    2. FreeTDS ¿Í php ¸ðµâ ¼³Ä¡ (Linux ¿¡¼­)

    FreeTDS( http://www.freetds.org/ ) ¿¡¼­ ÃֽŠFreeTDS¸¦ ¹Þ´Â´Ù. ( freetds-stable.tgz )

     
    # tar xvfz freetds-stable.tgz
    # cd freetds-0.64/
    # ./configure --prefix=/usr/local/freetds
    # make
    # make install
     


    1) php¸¦ »õ·Î ¼³Ä¡ÇÒ °æ¿ì

       php configureÇÒ ¶§ --with-mssql=/usr/local/freetds ¿É¼Ç¸¸ Ãß°¡ÇÏ°í ÄÄÆÄÀÏÇÏ¸é µÈ´Ù.

    2) ±âÁ¸¿¡ ¼³Ä¡µÈ php´Â ±×´ë·Î µÎ°í, mssql ¸ðµâ¸¸ Ãß°¡ÇÒ °æ¿ì

       php ¼Ò½º¸¦ ¸ÕÀú Ǭ ÈÄ ´ÙÀ½°ú °°Àº °úÁ¤À¸·Î ÁøÇàÇÑ´Ù. ÀÌ ¶§ phpize¿Í php-config ¸í·ÉÀº PATH ¿¡ ÀâÇôÀÖ¾î¾ß ÇÑ´Ù. make install½Ã È­¸é¿¡ Ç¥½ÃµÈ µð·ºÅ丮¿¡ mssql.so ¸ðµâÀÌ ¼³Ä¡µÈ´Ù.

     
    # cd php-5.x.x
    # cd ext/mssql/
    # phpize
    # ./configure --with-mssql=/usr/local/freetds
    # make
    # make install
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
     


       ¸¸¾à PDO¸ðµâ(PHP Data Objects, pdo_dblib.so) ±îÁö ÇÊ¿äÇÏ´Ù¸é ext/pdo_dblib/ µð·ºÅ丮 ¿¡¼­ ./configure --with-pdo-dblib=/usr/local/freetds ¸í·ÉÀ¸·Î ÇÑ ÈÄ ¼³Ä¡ÇÏ¸é µÈ´Ù.

       ¸ðµâ·Î ¼³Ä¡ÇÑ °æ¿ì php.ini ¿¡ ´ÙÀ½À» Ãß°¡ÇÑ´Ù.

     
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
    extension=mssql.so
    extension=pdo_dblib.so <-- pdo_dblib.so ¸ðµâÀ» ¼³Ä¡ÇÑ °æ¿ì
     


    3. freetds.conf ¼³Á¤

    FreeTDS¿¡¼­´Â freetds.conf ÆÄÀÏ¿¡ ȯ°æ¼³Á¤À» ÇÑ´Ù. ÆÄÀÏ Çü½ÄÀº SambaÀÇ smb.conf³ª rsyncdÀÇ rsyncd.conf¿Í ºñ½ÁÇÑ ÇüÅÂÀ̸ç, Á¢¼ÓÇÒ MSSQL Server¿Í log ÆÄÀÏ °æ·Î, ¹®ÀÚ¼Â, connection timeout ½Ã°£ µîÀ» ¼³Á¤ÇÑ´Ù. FreeBSD ports ½Ã½ºÅÛÀ¸·Î ¼³Ä¡½Ã /usr/local/etc/freetds.conf ¿¡, Linux¿¡¼­ 2¹ø °úÁ¤À¸·Î ¼³Ä¡Çß´Ù¸é /usr/local/freetds/etc/freetds.conf¿¡ À§Ä¡ÇÑ´Ù.

     
    [global]
            dump file = /var/tmp/freetds.log
            client charset = EUC-KR

    ¡¡¡¡¡¡text size = 64512
    [Coffeenix]
            host = IP ¶Ç´Â È£½ºÆ®¸í
            port = 1433
            tds version = 7.0
    [TestDB]
            host = IP ¶Ç´Â È£½ºÆ®¸í
            port = 1433
            tds version = 8.0
     


    [Coffeenix]¿Í [TestDB] 2°³´Â MSSQL ¼­¹ö¸¦ Á¤ÀÇÇÑ °ÍÀÌ°í, [global]Àº °øÅëÀ¸·Î Àû¿ëµÇ´Â ¼³Á¤ÀÌ´Ù. dump file = ´Â tds dump³»¿ëÀ» ÀúÀåÇÒ ÆÄÀÏ °æ·Î·Î 󸮰úÁ¤¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ ¾ò°í ½Í´Ù¸é ¼³Á¤ÇÑ´Ù. client charset = ´Â clientÀÇ ¹®ÀÚ¼ÂÀ» ÁöÁ¤ÇÑ´Ù. MSSQL 7.0À̻󿡼­´Â UCS-2 ¹®ÀÚ¼ÂÀ» »ç¿ëÇؼ­ Åë½ÅÀ» Çϸç client charset = EUC-KR·Î ÁöÁ¤ÇØ¾ß »ç¿ë¿¡ ¹®Á¦°¡ ¾ø´Ù.

    freetds.log À» º¸¸é ´ÙÀ½°ú °°ÀÌ ¹®ÀÚ¼ÂÀÌ º¯È¯µÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

     
    16:43:03.512658 names for ISO-8859-1: ISO-8859-1
    16:43:03.512687 names for UTF-8: UTF-8
    16:43:03.512709 names for UCS-2LE: UCS-2LE
    16:43:03.512730 names for UCS-2BE: UCS-2BE
    16:43:03.512780 iconv to convert client-side data to the "EUC-KR" character set
    16:43:03.512834 tds_iconv_info_init: converting "EUC-KR"->"UCS-2LE"
    16:43:03.512871 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
     


    host =, port = ´Â MSSQL ¼­¹ö¿Í Æ÷Æ®¸¦ ÁöÁ¤ÇÏ¸é µÇ¸ç ±âº» Æ÷Æ®´Â 1433¹øÀÌ´Ù.
    tds version = Àº SQL¼­¹öÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù.
    text size = ´Â TEXTSIZEÀÇ °ª(bytes´ÜÀ§). TEXT³ª image ŸÀÔÀÏ ¶§ returnµÇ´Â °ªÀÇ ÃÖ´ë ±æÀ̸¦
    bytes ´ÜÀ§·Î ÁöÁ¤ÇÑ´Ù. returnµÇ´Â À̹ÌÁöÀÇ Å©±â°¡ Å©´Ù¸é ÀÌ °ªÀ» ´Ã¸®¸é µÈ´Ù.

    freetds.conf ¼öÁ¤ÈÄ¿¡ apache¸¦ restartÇÒ ÇÊ¿ä´Â ¾ø´Ù.

    4. php »ç¿ë ¿¹

    $szDBHost¿¡´Â freetds.conf¿¡¼­ ÁöÁ¤ÇÑ ¼­¹ö¸íÀ̳ª 'IP:1433' Çü½ÄÀÇ °ªÀ» »ç¿ëÇÑ´Ù.

     
    < ?
    $szDBHost = "Coffeenix";
    $szDBName = "DB¸í";
    $szDBUser = "DB ID";
    $szDBPass = "DB ºñ¹Ð¹øÈ£";

    if(!$db_connect = mssql_connect($szDBHost,$szDBUser,$szDBPass)) exit;
    if(!mssql_select_db($szDBName,$db_connect))       exit;

    $result = mssql_query("SQL¹®", $db_connect);
      
    if( $result ) {
    ¡¡¡¡¡¡echo "query OK";
    } else {
    ¡¡¡¡¡¡echo "query error";
    }

    ? >
     


    5. ¿¡·¯ ¸Þ½ÃÁö

       1) Warning: mssql_connect(): Unable to connect to server: 111.222.123.123 in ...

          mssql_connect() ÇÔ¼ö¿¡¼­ serverÁöÁ¤ÇÒ ¶§ freetds.conf¿¡ ÁöÁ¤ÇÑ ¼­¹ö¸íÀ̳ª
          'IP:Æ÷Æ®' ÇüÅ·Π»ç¿ëÇØ¾ß ÇÑ´Ù. À§ÀÇ ¿¡·¯´Â freetds.conf¿¡¼­ [111.222.123.123] ¼­¹ö ¼½¼ÇÀÌ
          ÀÖ´ÂÁö ã¾ÆºÃ´Ù´Â Àǹ̰¡ µÈ´Ù. µµ¸ÞÀÎÀ̳ª IP¸¦ »ç¿ë½Ã¿¡´Â Æ÷Æ®¸¦ ÁöÁ¤ÇؾßÇÔÀ» ÀØÁö ¸»ÀÚ.

       2) Warning: mssql_connect(): WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?'). (severity 16) in ..

          ¹®ÀÚ¼ÂÀÌ ¸ÂÁö ¾Ê¾Æ¼­ ¹ß»ýÇÑ °ÍÀÌ´Ù. freetds.conf¿¡ client charset À» ¼³Á¤ÇÑ´Ù.

       3) Warning: mssql_connect(): message: 'ID' »ç¿ëÀÚ°¡ ·Î±×ÀÎÇÏÁö ¸øÇß½À´Ï´Ù. (severity 14) in ... ¶Ç´Â
          Warning: mssql_connect(): message: Login failed for user 'ID'. (severity 14) in ...

          ID³ª ºñ¹Ð¹øÈ£°¡ Ʋ·ÈÀ½À» ÀǹÌÇÑ´Ù.

    6. Âü°í(ÇÒ¸¸ÇÑ) »çÀÌÆ®

    * mssql_connect PHP Manual
      http://www.php.net/manual/kr/function.mssql-connect.php

    * FreeTDS ȨÆäÀÌÁö
      http://www.freetds.org/

    * FreeTDS FAQ (ÇÑ±Û ¹ø¿ª, ¿¹Àü ³»¿ë)
      http://database.sarang.net/database/freetds/faq/faq.html

    * Code: FreeTDS Notes
      http://rasterweb.net/raster/code/freetdsnotes.html

    * The FreeTDS mailing Archives
      http://lists.ibiblio.org/pipermail/freetds/
      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [03/24] Youtube òÁ&#2
    [03/20] Re: ¿Â¶óÀΰÔÀÓÀÇ Á¾ÁÖ±¹ ´ëÇѹα¹
    [03/20] ½ÇÁ¦&#4
    [03/18] ±¹°¡&#5
    [10/20] Cross Compiler ±ò
    [07/14] SSL ¬¡¬°
    [04/26] Re: µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [04/25] µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [10/30] Cshell¿¡¼­ ³­¼ö ¼³Á¤
    [10/23] °øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
    [01/26] Re: wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/25] wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/11] ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼­ SSL ¹®Á¦ (WebView ¹ö±×)
    [08/01] DNS forwarder (Àü´ÞÀÚ) ¼­¹ö¸¦ ÅëÇؼ­ Äõ¸®ÇÏ¸é ¿ª¹æÇâÀ» ¹Þ¾Æ¿ÀÁú ¸øÇÕ´Ï´Ù.
    [05/16] (ÁÖ)ÈÄÀÌÁî ½Ã½ºÅÛ¿£Áö´Ï¾î (°æ·ÂÀÚ) ¸ðÁý
      New!   ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      ¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼­¹ö°ü¸®
      DNS ¼³Á¤ °Ë»ç
      nagiosgraph ¼³Ä¡ ¹æ¹ý
      Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
      Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
      clusterssh

    [ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]




    ¿î¿µÁø : ÁÁÀºÁøÈ£(truefeel), ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
    2003³â 8¿ù 4ÀÏ~