Linux Oracle ¼³Ä¡¿Í È°¿ë(III)

À̼öÁØ(dislevel@newhuman.org)

 

 

¼­·Ð

    Áö³­ È£¿¡¼­´Â Oracle SQL °ú sqlplus, PRO*C ¿¡ ´ëÇؼ­ »ìÆ캸¾Ò´Ù. À̹ø È£¿¡¼­´Â ¸¶Áö¸·À¸·Î Oracle °ú PHP3 ¿ÍÀÇ ¿¬µ¿, À̸¦ ÀÌ¿ëÇÑ ¹æ¸í·Ï ¸¸µé±â¸¦ ³¡À¸·Î ÀÌ ±ÛÀ» ¸¶Ä¥±î ÇÑ´Ù.

 

°¡. Oracle ¿¬µ¿À» À§ÇÑ PHP3 ¼³Ä¡

    1) PHP3 ¿Í ¾ÆÆÄÄ¡¸¦ ¼³Ä¡Çϱâ ÀüÀÇ Áغñ»çÇ×

      PHP3 ¸¦ À¥¿¡¼­ »ç¿ëÇÏ·Á¸é ¸î °¡Áö Áغñ»çÇ×ÀÌ ÇÊ¿äÇÏ´Ù. ¸ÕÀú PHP3 ¸¦ ¾ÆÆÄÄ¡ À¥¼­¹ö¿Í ÇÔ²² »ç¿ëÇÏ·Á¸é, PHP3¸¦ Àç ÄÄÆÄÀÏÇÒ Çʿ伺ÀÌ Àֱ⠶§¹®¿¡ PHP3 ÀÇ ¼Ò½º(source)°¡ ÇÊ¿ä·Î ÇÑ´Ù. ¶ÇÇÑ ¿À¶óŬÀ» Áö¿øÇÏ´Â PHP3 ¸ðµâÀ» žÀçÇϱâ À§ÇÏ¿© ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ¼Ò½º°¡ ÇÊ¿ä·Î ÇÑ´Ù.

      ÁغñÇÒ ³»¿ëµé

      * PHP3 ¼Ò½º

      PHP3 ¼Ò½º´Â http://www.php.net¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ÇöÀç ¹öÀüÀº 3.0.12 ±îÁö ³ª¿ÍÀÖ´Ù. (¾Æ¿ï·¯ ¿©·¯ºÐµéÀº PHP4 ZEND ¿¡ ´ëÇÑ Á¤º¸µµ ±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù)

      * ¾ÆÆÄÄ¡ ¼Ò½º

      ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ °ø½Ä ÆäÀÌÁö´Â http://www.apache.orgÀÌ¸ç ¾ÆÆÄÄ¡ À¥¼­¹ö°¡ À¯¸íÇÑ ¸¸Å­ ¿©·¯ °³ÀÇ ¹Ì·¯¸µ »çÀÌÆ®¿¡¼­ ¾ÆÆÄÄ¡ À¥¼­¹ö¸¦ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖµµ·Ï ¸µÅ©¸¦ ÇÏ¿©³õ°í ÀÖ´Ù.

      ÀÌÁ¦ ¼Ò½º¸¦ ±¸ÇÏ¿´À¸¹Ç·Î ½ÇÁ¦·Î ¾ÆÆÄÄ¡À¥¼­¹ö¿Í PHP3¸¦ ¼³Ä¡¸¦ ÇÏ¿©º¸ÀÚ.

    2) ¾ÆÆÄÄ¡ À¥¼­¹ö¿Í PHP3 ÀÇ ¼³Ä¡

      1. ¸ÕÀú, ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ¼Ò½º¸¦ ´ÙÀ½°ú °°Àº ¸í·ÉÀ¸·Î /usr/src¿¡¼­ ¾ÐÃàÀ» Ǭ´Ù.

      [root@www src]# tar xvfz apache_1.3.6.tar.gz [enter]

      2. À̹ø¿¡´Â PHP3ÀÇ ¼Ò½º¸¦ ´ÙÀ½°ú °°Àº ¸í·ÉÀ¸·Î /usr/src¿¡¼­ ¾ÐÃàÀ» Ǭ´Ù.

      [root@www src]# tar xvfz php-3.0.12.tar.gz

      3. ¾ÐÃàÀÌ Ç®¾îÁ® ÀÖ´Â ¾ÆÆÄÄ¡ ¼Ò½º µð·ºÅ丮·Î À̵¿ÇÑ ÈÄ ¾ÆÆÄÄ¡ À¥¼­¹ö°¡ ¼³Ä¡µÈ µð·ºÅ丮¸¦ ¼³Á¤ÇÑ´Ù.

      4. ´Ù½Ã PHP3°¡ Ç®·ÁÁ® ÀÖ´Â µð·ºÅ丮·Î À̵¿ÇÑÈÄ PHP3ÀÇ ¼³Á¤À» ÇÑ´Ù.

      [root@www apache_1.3.6]# cd ../php-3.0.12
      [root@www php-3.0.12]# ./configure --with-oracle=/home/oracle/app/oracle/product/8.0.5 --enable-track-vars oracle/product/8.0.5 --with-apache=../apache_1.3.6

      °¢°¢ÀÇ ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.

      ¿É¼Ç --with-apache : Apache ¸ðµâ·Î PHP3 ¸¦ ¼³Ä¡ÇÑ´Ù.

      ¿É¼Ç --enable-track-vars
             --enable-track-vars :

      HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS ¹è¿­¿¡ µé¾îÀÖ´Â GET / POST / cookie º¯¼öµéÀÌ ¾îµð·ÎºÎÅÍ ¿Ô´ÂÁö ±â¾ïÇÏ°Ô ¸¸µç´Ù. ÀÌ ¿É¼ÇÀº ´ÜÁö Default °ªÀ» Á¤ÇÏ´Â °Í»ÓÀ̸ç, ÈÄ¿¡ configuration fileÀÇ track_vars Áö½ÃÀÚ¿¡ ÀÇÇØ Enable/Disable ÇÒ ¼ö ÀÖ´Ù.

      ¿É¼Ç --with-oracle=/home/oracle/app/oracle/product/8.0.5 :
      ORACLE Ȩµð·ºÅ丮ÀÇ ¼³Á¤

           --with-oracle=DIR
      ¿À¶óŬ Áö¿øÀ» Æ÷ÇÔÇϵµ·Ï ÇÑ´Ù.

      5. make , make install ¸í·ÉÀ» »ç¿ëÇÏ¿© PHP3¸¦ ¼³Ä¡ÇÑ´Ù.

      6. PHP3 ¾ÆÆÄÄ¡ ¸ðµâÀÌ Àß ÄÄÆÄÀÏÀÌ µÇ¾úÀ¸¹Ç·Î À̹ø¿¡´Â ¾ÆÆÄÄ¡ ¼Ò½ºµð·ºÅ丮·Î À̵¿ÇÑÈÄ ¾ÆÆÄÄ¡¸¦ ÄÄÆÄÀÏÇÑ´Ù.

      ¸ÕÀú ¾ÆÆÄÄ¡ ¼­¹ö¸¦ ÄÄÆÄÀÏÇϱâ Àü¿¡ PHP3 ¸ðµâ°ú ÇÔ²² ÄÄÆÄÀÏÇÏ°Ú´Ù´Â °ÍÀ» ¾ÆÆÄÄ¡ ¼­¹ö¿¡ ¾Ë·ÁÁÖ±â À§ÇÏ¿© configure¸¦ ¾Æ·¡¿Í °°ÀÌ ´Ù½Ã ½ÇÇàÀ» ÇÑ´Ù.

      [root@www php-3.0.12]# cd ..
      [root@www src]# cd apache_1.3.6
      [root@www apache_1.3.6]# ./configure --prefix=/www --activate-module= src/modules/php3/libphp3.a

      --activate-module ¿É¼ÇÀº ¾ÆÆÄÄ¡¿¡ Ãß°¡µÉ moduleÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

      7. make ; make install ¸í·ÉÀ¸·Î ÄÄÆÄÀÏ°ú ¼³Ä¡¸¦ ÇÑ´Ù.

      ÀÌ·Î½á ¾ÆÆÄÄ¡¿Í PHP3 ¸ðµâÀ» ¼³Ä¡ÇÏ¿´´Ù.

    3) PHP¸¦ Apache Dynamic Shared Object (DSO)·Î ÄÄÆÄÀÏÇϱâ

      À§ÀÇ ¹æ½ÄÀº ±âÁ¸ÀÇ ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ¼³Á¤À» ¹«½ÃÇÏ°í óÀ½ºÎÅÍ ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ±×·¯³ª DSO ¹æ½ÄÀº PHP¸¦ ÀÌ¹Ì ÄÄÆÄÀÏ/½ÇÇàµÇ°í ÀÖ´Â ¾ÆÆÄÄ¡ ¼­¹ö¿¡ Ãß°¡ÇÏ´Â °¡Àå ±ú²ýÇÑ ¹æ¹ýÀÌ´Ù. ¿©·¯ºÐÀÇ ¼­¹ö´Â mod_so ¸¦ Æ÷ÇÔÇϵµ·Ï ¸¸µé¾îÁ® ÀÖ¾î¾ß ÇÑ´Ù.(¡°httpd -l¡±·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.) ¶ÇÇÑ,¡¯apxs¡¯ Perl ½ºÅ©¸³Æ®°¡ ¼³Ä¡µÇ¾î ÀÖ°í, ¿øÇÏ´Â ¼­¹ö setupÀ» ÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. (´ëºÎºÐ ¹èÆ÷ÆÇÀº ±×·¯ÇÏ´Ù ;)~ ) apxs °¡ ¼³Ä¡ µÇ¾î ÀÖ´ÂÁö È®ÀÎÀÌ µÇ¾úÀ¸¸é ÀÌÁ¦ PHP ¸¦ ¸¸µç´Ù.

        cd php-3.0.12
        ./configure  --with-apxs=/some/path/bin/apxs ¡¬
      --with-oracle=/home/oracle/app/oracle/product/8.0.5
      --with-config-file-path=/some/path
       make
       make install

      ¹°·Ð ¿©·¯ºÐÀÌ ¿øÇÏ´Â ¸ðµç ¿É¼ÇÀ» ÁÙ ¼ö ÀÖ´Ù. ÀÚ¼¼ÇÑ ¿É¼ÇÀÇ ¸®½ºÆ®¸¦ ¿øÇϸé /configure --help ¸í·ÉÀ» ³»·Áº»´Ù.

      ¾ÆÆÄÄ¡¿Í PHP ¼³Ä¡°¡ ¿Ï·áµÇ¾úÀ¸¸é, ÀÌÁ¦ PHP °¡ ¾ÆÆÄÄ¡¿¡¼­ µ¿ÀÛÇϱâ À§ÇØ ´ÙÀ½°ú °°ÀÌ httpd.conf ¸¦ ¼öÁ¤ÇÑ´Ù.

      AddType application/x-httpd-php3 .php3 .html
      AddType application/x-httpd-php3-source .phps

      ¶ÇÇÑ DirectoryIndex ¿É¼Ç¿¡ index.php3 ¸¦ Ãß°¡ÇÑ´Ù.

      DirectoryIndex index.html index.php3

      ÀÌÁ¦ ¾ÆÆÄÄ¡ À¥¼­¹ö¸¦ ´Ù½Ã ±âµ¿ÇÏ°í ÀÌ°ÍÀÌ Á¦´ë·Î ¼³Á¤ µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϱâ À§ÇØ ´ÙÀ½°ú °°Àº php code ¸¦ ÀÛ¼ºÇÏ¿© ºê¶ó¿ì¡ ÇØ º¸ÀÚ.

        info.php3

        <?
       phpinfo();
        ?>

      ¿©·¯ºÐµéÀÌ ¼³Ä¡ÇÑ php ¿¡ ´ëÇÑ Á¤º¸°¡ ÇÑ´«¿¡ µé¿©´Ùº¸ÀÏ °ÍÀÌ´Ù.

 

³ª. PHP ÀÇ °³·«Àû ¼Ò°³

    ÀÌÁ¦ PHP3 ¿Í ¾ÆÆÄÄ¡ À¥¼­¹ö¸¦ ¼³Ä¡ÇßÀ¸¹Ç·Î , º»°ÝÀûÀ¸·Î PHP3 ÀÇ ¹®¹ý¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸ÀÚ

    1) º¯¼ö (Variable)

      - º¯¼ö´Â $·Î ½ÃÀÛÇÑ´Ù.

      - º¯¼ö´Â Có·³ º°µµ·Î ¼±¾ðÇÏ´Â ºÎºÐÀÌ ¾øÀ¸¸ç, º¯¼ö typeÀº º¯¼ö°¡ »ç¿ëÇÑ context ¿¡ µû¶ó °áÁ¤µÈ´Ù. ¿¹¸¦ µé¾î $i = 10 À̶ó°í Çϸé $i ´Â Á¤¼öÇüÀ¸·Î °áÁ¤µÇ¾îÁö¸ç, $name = ¡°dislevel¡±¶ó°í ÇÏ¿´´Ù¸é $name ´Â ¹®ÀÚ¿­·Î µÈ´Ù. ÀÌó·³ PHP3 ´Â ÀÚÀ¯µµ°¡ »ó´çÈ÷ ³ô´Ù´Â °ÍÀ» ¾Ë ¼ö °¡ ÀÖ´Ù.

      - ¹è¿­(Array) Àº $array[] Çü½ÄÀ¸·Î »ç¿ëÇÑ´Ù.

      * ¿ÜºÎº¯¼ö (External Variables)

      - PHP3 °¡ °¢±¤À» ¹Þ´Â ÇÑ°¡Áö ÀÌÀ¯ÁßÀÇ Çϳª°¡ ¹Ù·Î ¿ÜºÎº¯¼öÀÌ´Ù.
      Html From(Get/Post)À¸·Î Àü´ÞµÇ´Â °ª Áß Form ÀÇ name filed·Î ÁöÁ¤µÈ ºÎºÐÀÌ ¹Ù·Î º¯¼öÀÇ À̸§ÀÌ µÈ´Ù. ±×¸®°í value ´Â º¯¼öÀÇ °ªÀÌ µÈ´Ù. ´õ±º´Ù³ª imageÀÏ °æ¿ì¿¡´Â image¸¦ ¸¶¿ì½º·Î Ŭ¸¯ÇÑ À§Ä¡°¡ name_x, name_y ÇüÅ·ΠÀü´ÞµÈ´Ù´Â °ÍÀÌ´Ù.

        <form method=post action=test.php3>
        <input type=hidden name=part value=¡±2¡±>
        <input type=text name=user value=¡±dislevel¡±>
        <input type=submit value=µî·Ï>
        </form>

      À̶ó°í ÇÏ¿´À» °æ¿ì µî·Ï¹öÆ°À» ´©¸£°ÔµÇ¸é test.php3 ¿¡´Â

        $part = 2
        $user = ¡°dislevel¡±

      À¸·Î ¿ÜºÎº¯¼ö¸¦ ¼±¾ðÇÑ °Í°ú °°Àº È¿°ú¸¦ ¹ß»ýÇÏ°Ô µÈ´Ù. ´Ù¸¥ cgi ÇÁ·Î±×·¡¹Öó·³ post, get À» ó¸®Çϱâ À§ÇÑ Ãß°¡ ¶óÀ̺귯¸®°¡ ÇÊ¿ä¾ø´Ù´Â °ÍÀÌ´Ù.

      - HTTP Cookie : ºê¶ó¿ìÁ®·Î cookie ¸¦ Àü´ÞÇÒ·Á¸é SetCookie(name, value, timeout) ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. Client·ÎºÎÅÍ Àü´ÞµÇ´Â Cookie ´Â PHP º¯¼ö·Î º¯È¯ÀÌ µÈ´Ù.

      - ȯ°æº¯¼ö (Environment Variable) : ȯ°æ º¯¼ö ¶ÇÇÑ PHP º¯¼öó·³ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ȯ°æº¯¼öÀÇ °ªÀ» ¾ò±â À§ÇÑ getenv() ÇÔ¼ö¿Í ȯ°æº¯¼ö·Î ÁöÁ¤Çϱâ À§ÇÑ putenv() ÇÔ¼ö°¡ Áö¿øµÈ´Ù.

    2) Class ÀÇ Áö¿ø

      - class keyword¸¦ ÀÌ¿ëÇÏ¿© class¸¦ Á¤ÀÇÇϸç instance »ý¼ºÀº new ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ´Ù.

      - class ÀÇ »ó¼ÓÀº extends keyword¸¦ »ç¿ëÇÑ´Ù

      - constructor Á¤ÀÇ´Â class ¿Í °°Àº À̸§À» °®´Â »ó¼ö¸¦ Á¤ÀÇÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù.

      constructor ´Â default parameter¸¦ °¡Áú ¼ö ÀÖ´Ù.

        ¿¹>

        class setupClass{
        var $value;
        function setupClass($defaultValue = ¡°unfixed¡±)
        { $value = $defaultValue ; }
        function SetValue($inputValue)
        { $value = $inputValue; }
        function Display()
        { echo $value; }
        }

        class setupExtendsClass extends setupClass{
        fuction DisplayLine(){
        echo(¡°$vvaluen ¡°);

        }
        }

        $setup = new setupClass;
        $setup->SetValue(¡°Php fixed¡±);
        $setup->Display();
        $setup->DisplayLine();

    3) Ç¥Çö½Ä (Expression)

      - °ªÀÇ ÇÒ´ç : $a = $b = 5
      - ÀüÀ§¿¬»ê, ÈÄÀ§¿¬»êÀÌ °¡´É : $a++, ++$a, $a--, --$a

      - C¿Í °°ÀÌ ¿¬»êÀÚ¿Í ÇÒ´çÀ» µ¿½Ã¿¡ ÇÒ¼ö°¡ ÀÖ´Ù.

        : $a+=3; $b= double(--$b);

      - boolean : ¼ýÀÚ¿¡¼­ 0Àº false, 0ÀÌ ¾Æ´Ï¸é true

      ¹®ÀÚ¿­¿¡¼­ ¡°¡± ¿Í ¡°0¡±Àº false, ³ª¸ÓÁö´Â true

      array ¿¡¼­ element °¡ Çϳªµµ ¾øÀ¸¸é false ±×·¸Áö ¾ÊÀ¸¸é true

    4) Á¦¾î¹®

      - if ¹®Àå : ºñ±³¹®ÀåÀ¸·Î 2°¡Áö ¹æ½ÄÀÌ ÀÖ´Ù.

      Çü½Ä1.                              Çü½Ä2.
                                             
      if( ºñ±³¹® ) {                       if(ºñ±³¹®) :
                                             
      ¹®Àå 1;                             ¹®Àå 1;
                                             
      } elseif ( ºñ±³¹® ) {            elseif (ºñ±³¹®) :
                                             
      ¹®Àå 2;                             ¹®Àå 2;
                                             
      } else {                            else :
                                             
      ¹®Àå 3;                             ¹®Àå 3;
                                             
      }                                    end if;             


      - while ¹®Àå

      Çü½Ä1.                              Çü½Ä2.
                                     
      while( ºñ±³¹® )                   while( ºñ±³¹® ) :
                                     
      ¹®Àå 1;                             ¹®Àå 1;
                                     
                                             endwhile;         

      - do .. while ¹® : ±âÁ¸ÀÇ CÀÇ Çü½Ä°ú °°´Ù.

      do {

      ¹®Àå 1;

      } while( ºñ±³¹® );

      - for ¹® : ±âÁ¸ÀÇ for ÀÇ Çü½Ä°ú °°´Ù.

      for( expr1; expr2 ; expr 3)

      {

      ¹®Àå 1;

      }

      - switch ¹® :

      switch( º¯¼ö ) {

      case °ª1 :

      ¹®Àå 1;

      break;

      default :

      ¹®Àå 2¡¯¡¯

      }

    5) ÇÔ¼ö (Function)

      - ÇÔ¼ö´Â function keyword ·Î Á¤ÀÇ µÇ¸ç return type ´Â ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù.

      - ÇÔ¼öÀÇ ±âº»Çü

      function Æã¼ÇÀ̸§( º¯¼ö1, º¯¼ö2, º¯¼ö3, ... , $º¯¼ön) {
        ¹®Àå ;
        return $¸®ÅÏ°ª;
        }

      - ¸®ÅϹÞÀº list ¿Í object ¸¦ Æ÷ÇÔÇÏ¿© ¾î¶² Çü½ÄÀÌµç °¡´ÉÇÏ´Ù.

      - C++ ¿¡¼­Ã³·³ default parameter¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

      function Æã¼ÇÀ̸§($defValue = 1){}

    6) ¿¬»êÀÚ ( Operator )

      - °è»êÀ» À§ÇÑ ¿¬»êÀÚ : + , - , * , / , % (³ª¸ÓÁö ¿¬»êÀÚ)

      - ¹®ÀÚ¿­(string) ¿¬»êÀÚ : . (conscatenation)

      - ´ëÀÔ ¿¬»êÀÚ : =

      - ºñÆ® ¿¬»êÀÚ : & (and) , | (or), ~ (not)

      - ³í¸® ¿¬»çÀÚ : and (&&) , or (||), xor, !

      - ºñ±³ ¿¬»êÀÚ : == (°°´Ù.) , != (´Ù¸£´Ù), <, >, <=, >=

    7) include ¹®

      include ¹®ÀåÀ» ¸¸³ª¸é ÁöÁ¤ÇÑ ÆÄÀÏÀ» Æ÷ÇÔÇÑ´Ù. c ¿Í´Â ´Ù¸¥ Á¡Àº ÇÊ¿äÇÑ °æ¿ì¿¡¸¸ file À» Æ÷ÇÔ½Ãų¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. Webpage ¿¡¼­ ÀÚÁÖ »ç¿ëµÇ¾îÁø´Ù.

     

´Ù. PHP °¡ Áö¿øÇÏ´Â Oracle ÇÔ¼ö

    ÇöÀç PHP3 ¿¡¼­ Áö¿øÇÏ´Â Oracle °ü·Ã ÇÔ¼ö ±ºÀº µÎ °¡Áö·Î ³ª´©¾îÁ® ÀÖ´Ù. ¡®ora_¡¯ ÇÔ¼ö ±º°ú ¡®oci_¡¯ °¡ ¹Ù·Î ±×°ÍÀε¥, ÀÌ´Â ¾Æ¸¶µµ ÇÏÀ§ ȣȯ¼º¿¡ ¿°µÎ¸¦ µÎ°í ±¸ÇöÇÑ µí ÇÏ°í, ½ÇÁöÀûÀÎ °³¹ßÀº ÇöÀç ¡®oci_¡¯ ÇÔ¼ö ±º ÂÊÀ¸·Î ³Ñ¾î°¬´Ù. ±×·¯³ª º» °­Á¿¡¼­´Â ¡®ora_¡¯ ÇÔ¼ö ±ºÀ» ÀÌ¿ëÇØ ¹æ¸í·Ï ÇÁ·Î±×·¥À» ¼³¸íÇÑ´Ù. ¡®oci_¡¯ ÇÔ¼ö ±ºÀ¸·ÎÀÇ ÀÌÀüÀº ±×¸® ¾î·ÆÁö ¾ÊÀ» °ÍÀÌ´Ù. ´ëºÎºÐ ¡®ora_¡¯ ¸¦ ¡®oci_¡¯ ·Î ¹Ù²Ù¾îÁÖ¸é µÉ Á¤µµÀÌ´Ù.

    - ±âº»ÀûÀÎ ora_ ÇÔ¼öµé

    Ora_Close -- Oracle cursor¸¦ ´Ý´Â´Ù.

    Ora_ColumnName -- Oracle result columnÀÇ À̸§À» ±¸ÇÑ´Ù.

    Ora_ColumnType -- Oracle result columnÀÇ typeÀ» ±¸ÇÑ´Ù.

    Ora_Commit -- Oracle transactionÀ» commit ÇÑ´Ù.

    Ora_Error -- Oracle error message¸¦ ±¸ÇÑ´Ù.

    Ora_ErrorCode -- Oracle error code¸¦ ±¸ÇÑ´Ù.

    Ora_Exec -- Oracle cursor¿¡ ÀÖ´Â parseµÈ ¹®ÀåÀ» ½ÇÇàÇÑ´Ù.

    Ora_Fetch -- cursor¿¡¼­ dataÀÇ row¸¦ °¡Á®¿Â´Ù.

    Ora_GetColumn -- °¡Á®¿Â row¿¡¼­ data¸¦ ±¸ÇÑ´Ù.

    Ora_Logoff -- Oracle connectionÀ» ´Ý´Â´Ù.

    Ora_Logon -- Oracle connectionÀ» ¿¬´Ù.

    Ora_Open -- Oracle cursor¸¦ ¿¬´Ù.

    Ora_Parse -- SQL ¹®ÀåÀ» Çؼ®(parse)ÇÑ´Ù.

    Ora_Do --
    Ora_Do()´Â ¸¹ÀÌ »ç¿ëÇÏ´Â 1ȸ¼º ÁúÀǸ¦ À§ÇØ Ora_Parse(), Ora_Exec(), Ora_Fetch()ÀÇ µ¿ÀÛÀ» ÇѲ¨¹ø¿¡ ¼öÇàÇÏ´Â ÇÔ¼öÀÌ´Ù.

    Ora_FetchInto --
    Ora_FetchInto´Â Àüü row¸¦ fetchÇÏ¿© °á°ú¸¦ Àü´Þ¹ÞÀº array reference¿¡ ÀúÀåÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ÇØ´ç rowÀÇ Ä÷³ °³¼ö³ª false¸¦ ¹ÝȯÇÑ´Ù.

    Ora_columnsize --
    ÀÌ ÇÔ¼ö´Â named column¿¡¼­ type(ora_columntype
    ()À» º¸¶ó)ÀÇ Å©±â¸¦ ¹ÝȯÇÑ´Ù. Ä÷³ ¹øÈ£´Â 0ºÎÅÍ ½ÃÀÛÇÑ´Ù.

    Ora_numcols --
    resultÀÇ Ä÷³ °³¼ö¸¦ ¹ÝȯÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ora_parse()/ora_exec()/ora_fetch()ÀÇ ÇÔ¼ö°¡ ¼ø¼­´ë·Î ¿Ï·áµÇ¾úÀ» ¶§¸¸ Á¤»óÀûÀÎ °ªÀ» µ¹·ÁÁØ´Ù. (ora_do()¸¦ ½ÇÇàÇÑ Èĵµ µÈ´Ù.)

    Ora_numrows --
    Ä÷³ °³¼ö°¡ ¾Æ´Ï¶ó rowÀÇ °³¼ö¶ó´Â °Í¸¸ Á¦¿ÜÇÏ°í´Â À§¿¡ ÀÖ´Â ora_numcols()¿Í °°´Ù.
      
    ** ÀÚ¼¼ÇÑ »ç¿ë¹ýÀº PHP ¸Å´º¾óÀ» Âü°íÇÏ´Â°Ô ÁÁ°Ú´Ù.

     

¶ó. ¾ÆÆÄÄ¡ À¥¼­¹ö¿Í PHP3 ¸¦ ÀÌ¿ëÇÑ ¹æ¸í·ÏÀÇ ÀÛ¼º

    ÀÌÁ¦ ±â´Ù¸®´ø ¹æ¸í·Ï ±¸Çö ½Ã°£ÀÌ´Ù. »ç½Ç ¹æ¸í·Ï ±¸ÇöÀº ±×¸® ¾î·Á¿î °Ô ¾Æ´Ñµ¥(°ø°³ ¼Ò½º°¡ ³Î·ÁÀÖ´Ù) À§¾ÈÀ̶ó¸é, °ªºñ½Ñ Oracle DBMS ¿¡ Çѹø µ¹·Áº»´Ù´Â °ÍÀÌ°í, À̸¦ Ãʼ®À¸·Î °Ô½ÃÆǵµ ¸¸µé ¼ö ÀÖ´Ù´Â ÀڽۨÀÇ ¹è¾çÀÏ °ÍÀÌ´Ù. µðÀÚÀÎ À̶ó´øÁö ÇÁ·Î±×·¡¹Ö ÈùÆ®´Â ¿©·¯ºÐµéÀÌ Àß ¾Æ½Ã´Ù½ÃÇÇ PHP3 ·Î À¯¸íÇÑ Á¤ÁøÈ£´Ô( http://sera.ditco.com )ÀÇ È¨ÆäÀÌÁö¿¡ °ø°³µÇ¾îÀÖ´Â mysql ·Î ¸¸µé¾îÁø ¹æ¸í·ÏÀ» Âü°íÇÏ¿´´Ù. ¸ðµç À̹ÌÁö¿Í ÆäÀÌÁöÀÇ ·¹À̾ƿôÀº Á¤ÁøÈ£´ÔÀÇ ±×°Í°ú °°À½À» ¹àÈù´Ù. ±×·±µ¥ ´õ´õ¿í ³î¶ö ÀÏÀº, ÀÌ ÀÛ¾÷À» ¶Ç http://sunny.sarang.net ¿¡ °è½Ã´Â ºÐ(¸¶¼Ò¿¡ PHP3 ¸¦ ¿¬ÀçÇϽŠºÐÀ¸·Î ¾Ë°í ÀÖ´Ù)ÀÌ ´Ù½Ã ±¸ÇöÇß´Ù´Â °ÍÀÌ´Ù. Á¤ÁøÈ£´Ô°ú ´õºÒ¾î PHP, ƯÈ÷ Oracle °úÀÇ ¿¬µ¿¿¡ °ü½ÉÀÌ ¸¹À¸½Å ºÐÀÌ´Ï µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

    ¹æ¸í·Ï ±¸Çö¿¡ ÀÖ¾î ÇÊÀÚ´Â sequence¸¦ »ç¿ëÇØ º¸¾Ò´Ù. ÀÌ´Â °Ô½Ã¹°ÀÇ ¼øÂ÷ÀûÀÎ ¼ø¹øÀ» ÆľÇÇϱâ À§Çؼ­Àε¥, ¿©±â¼­´Â °Ô½Ã¹° »èÁ¦¸¦ À§ÇÑ Primary Key·Î »ç¿ëÇÏ¿´´Ù. Oracle¿¡¼­ sequence¸¦ »ç¿ëÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇØÁØ´Ù.

      create sequence <sequence_name>;

    sequence ÀÇ °ªÀ» ±¸Çϱâ À§Çؼ­´Â .nextval, .currval ÀÇ µÎ ÀÎÀÚ¸¦ »ç¿ëÇϴµ¥, .currvalÀ» »ç¿ëÇϱâ À§Çؼ­´Â ¸ÕÀú .nextval·Î¼­ °ªÀ» »ý¼ºÇÑ ÈÄ¿¡¶ó¾ß °¡´ÉÇÏ´Ù.

    µ¥ÀÌÅͺ£À̽º¿¡ ¹æ¸í·ÏÀÇ ³»¿ëÀ» ÀúÀåÇϱâ À§ÇÏ¿©, tableÀ» ¸¸µéÀÚ.

      create table gbook (
              no number primary key,
              name char(20),
              email char(40),
              url char(40),
              cmts varchar(1024));

    sequence ´Â ´ÙÀ½°ú °°ÀÌ »ý¼ºÇÑ´Ù.

      create sequence gbook_no;

    ´ÙÀ½Àº Á÷Á¢ PHP3 code ¸¦ Çϳª¾¿ »ìÆ캸µµ·Ï ÇÏÀÚ.

    <?

    // Oracle ȯ°æ¼³Á¤

            PutEnv(¡°ORACLE_HOME=/home/oracle/app/
                    oracle/product/8.0.5¡±);
            PutEnv(¡°ORACLE_SID=linux¡±);
            PutEnv(¡°NLS_LANG=KOREAN_KOREA.
                     KO16KSC5601¡±);

    // ¹æ¸í·ÏÀ» À§ÇØ »ý¼ºÇÑ gbook Database ·ÎÀÇ Á¢¼Ó

    $con = ora_logon(¡°gbook¡±,¡±*****¡±) or die( ¡° SQL server¿¡ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù. ¡°);
    $curs = ora_open($con);

    // 1ÆäÀÌÁö´ç ÀÚ·á¼ö

    $scale=  5 ;

    // »õ±Û ¿Ã¸®±â

    if($mode==¡¯up¡¯)
    {
       if(!$name || !$comments)
        {   echo(¡° <script>
                      window.alert(¡®À̸§°ú ³²±â½Ç ¸»¾¸À»
                                   Àû¾î ÁÖ¼¼¿ä¡¯)
                      history.go(-1)
                     </script>
                   ¡°); exit;
        }
       $name = addslashes($name);
       $email = addslashes($email);
       $url = addslashes($url);
       $cmts =  addslashes($cmts);

       $query = ¡°insert into gbook values(¡®gbook_no.
    nextval¡¯,¡¯$name¡¯,¡¯$email¡¯,¡¯$url¡¯,¡®$cmts¡¯)¡±;
       ora_parse($curs,$query);
       $result = ora_exec($curs);
       if($result)
       {
        echo(¡° <meta http-equiv=¡¯Refresh¡¯ content=¡¯0;
    URL=$PHP_SELF¡¯> ¡°);
       }
       else
       {
         echo(¡° <script>
                      window.alert(¡®DB ¿À·ù°¡ ¹ß»ýÇÏ¿´½À
                                   ´Ï´Ù.¡¯)
                      history.go(-1)
                     </script>
                   ¡°); exit;
       }
    }

    // ³»¿ë º¸¿© ÁÖ±â  

    if(!$mode || $result)
    {

      if(!$start){ $start= 0 ;}

      $query=¡±select count(*) from gbook¡±;
      ora_parse($curs,$query);
      ora_exec($curs);
      ora_fetch($curs);

    // °Ô½Ã¹°ÀÇ ÃÑ °³¼ö¸¦ °è»êÇÑ´Ù.

      $total = ora_getcolumn($curs,0);

      $query=¡±select * from gbook order by no desc¡±;
      ora_parse($curs,$query);
      ora_exec($curs);
      $ncol = ora_numcols($curs);

    // ÆäÀÌÁö ´ç °Ô½Ã¹° ¼ö¸¸Å­ º¸¿©ÁÜ

      if($start)
      {  $n=$total-$start;
      }
    else
      {  $n=$total;
      }

    for($k=0;$k<$start;$k++)
     {
       ora_fetch($curs);
     }

    for($i=$start ; $i< $start+$scale ; $i++)  //  start ¿¡¼­ scale ±îÁö¸¸

     {

       if($i< $total ) // Àüü ÀÚ·á °³¼ö±îÁö¸¸ Ãâ·Â

       {

         ora_fetch($curs);
         
         for($j=0;$j<$ncol;$j++)
     {
        $row[$j] = ora_getcolumn($curs,$j);
     }

          echo(¡° ----------- È­¸é Ãâ·Â ------------------¡±);

    // ÇÏ´Ü ¹öÆ°
    // ÆäÀÌÁö °³¼ö¿Í ÀÌÀü / ÀÌÈÄ ÆäÀÌÁö À̵¿

    if(!$mode || $result)  
    {
     echo(¡°<center>
     <a href=$PHP_SELF?mode=new><IMG HEIGHT=30 WIDTH=30
     SRC=¡¯./img/write.gif¡¯ VSPACE=0 HSPACE=0 ALIGN=¡¯TOP¡¯
     BORDER=0 alt=¡¯¹æ¸í·Ï¿¡ ±Û¾²±â¡¯></a> ¡°);

     $p_p=$start- $scale ;
     $n_p=$start+ $scale ;

     if($p_p>=0 && $mode!=¡¯new¡¯)
     { echo(¡°<a href=¡¯$PHP_SELF?start=$p_p¡¯><IMG HEIGHT=30 WIDTH=30
    SRC=¡¯./img/p-doc.gif¡¯ VSPACE=0 HSPACE=0 ALIGN=¡¯TOP¡¯
     BORDER=0 alt=¡¯ÀÌÀü ÆäÀÌÁö¡¯></a> ¡°);
        }

     if($n_p<$total && $mode != ¡®new¡¯)
         { echo(¡°<a href=¡¯$PHP_SELF?start=$n_p¡¯><IMG HEIGHT=30 WIDTH=30
    SRC=¡¯./img/n-doc.gif¡¯ VSPACE=0 HSPACE=0 ALIGN=¡¯TOP¡¯
     BORDER=0 alt=¡¯´ÙÀ½ ÆäÀÌÁö¡¯></a></center>¡±);
         }
         
    }

    ?>

    ½ÇÁ¦ÀûÀÎ ±Û¾²±â Æû µîÀº »ý·«µÇ¾ú°í, Áß¿ä ºÎºÐ¸¸ ³ª¿­ÇØ º¸¾Ò´Ù.
    http://sunny.sarang.netÀÇ ³»¿ë°ú ºñ±³ÇØ º¼¸¸µµ ÇÏ´Ù. À̸¦ Åä´ë·Î Á» ´õ ¸ÚÁø ¹æ¸í·ÏÀ» ¸¸µé¼öµµ ÀÖ°Ú°í, ¾Æ´Ï¸é ±×´ë·Î ½áµµ ¹«¹æÇÒ °ÍÀÌ´Ù.

     

¸¶Ä¡´Â ±Û

    ÀÌÁ¦±îÁö 3 ȸ¿¡ °ÉÃÄ Linux ¿¡¼­ÀÇ Oracle È°¿ë¹æµµ¸¦ ¾Ë¾Æº¸¾Ò´Ù. ¿¬ÀçµÈ ³»¿ë¿¡ ¸ÂÃß¾î Ã¥À» ã¾Æ°¡¸ç °øºÎÇϽŠºÐÀ̸é ÀÌÁ¦´Â ²Ï³ª ÀڽۨÀ» °¡Á³À» °ÍÀÌ´Ù. ¾ðÁ¦³ª ±×·¸µíÀÌ ¾ÆÁÖ ÀÚ¼¼ÇÏ°Ô ÀÏÀÏÀÌ ÀûÁö ¸øÇÔÀ» Á˼ÛÇÏ°Ô »ý°¢ÇÏ°í °è¼Ó ¿©·¯ºÐµéÀÇ ½Ç·ÂÀÌ ³ª¾ÆÁö±â¸¦ ¹Ù¶ö »ÓÀÌ´Ù. Linux World Ãʱ⿡ X WINDOWS °­Á¸¦ °ÅÃÄ Firewall ±×¸®°í ÀÌÁ¦ Oracle ±îÁö ±ÛÀ» ½è´Ù. ´ÙÀ½¿£ ¾î¶² ºÐ¾ßÀÇ ±ÛÀÌ ³» ¼Õ¿¡ ÀÇÇØ ½áÁú±î? ½º½º·Îµµ ±â´ë°¡ µÈ´Ù.




¡ã top

homeÀ¸·Î...