MySQL °­ÁÂ (¥³)

±èÀ±ÇÑ(spbear@nownuri.net)

 

 

1. µé¾î°¡´Â ¸»

    APM - Apache, PHP3, MySQLÀÇ È¯»óÀÇ Æ®¸®¿À!!

    Áö³­È£¿¡¼­´Â MySQL°ú C¸¦ ¿¬µ¿ÇÏ´Â ¹æ¹ýÀ» »ìÆì º¸¾Ò´Ù. SQL±¸¹®À» »ç¿ëÇÏ´Â °Íº¸´Ù C·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °ÍÀÌ µ¥ÀÌÅ͸¦ °ü¸®Çϱ⠽¬¿î °ÍÀº ÀÚ¸íÇÏ´Ù. ÇÏÁö¸¸ ¿©±â¼­ Á» ´õ ¿å½ÉÀ» ³»¾î À̹øȸ¿¡¼­´Â À¥°ú ¿¬µ¿ÇÏ´Â ¹æ¹ýÀ» »ìÆ캸µµ·Ï ÇÏÀÚ. C¸¦ ÀÌ¿ëÇÑ CGI¸¦ ÀÛ¼ºÇؼ­ À¥°ú ¿¬µ¿ÇÒ ¼öµµ ÀÖÁö¸¸ ¿©±â¼­´Â PHP3¶ó´Â À¥½ºÅ©¸³Æ® ¾ð¾î¸¦ »ç¿ëÇØ ¼Õ½±°Ô À¥°ú DB¸¦ ¿¬µ¿ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú´Ù.

 

2. ¼³Ä¡

    ¼³Ä¡´Â µû·Î ¼³Ä¡ÇÏÁö ¾Ê°í ±âº»ÀûÀÎ ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý, ¼Ò½º¸¦ ÀÌ¿ëÇؼ­ ¼³Ä¡ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ »ìÆ캸µµ·Ï ÇÏ°Ú´Ù. ±âº»ÀûÀ¸·Î MySQLÀÇ ¼³Ä¡ ¹æ¹ýÀº Áö³­È¸¿¡¼­ ´Ù·ç¾úÀ¸¹Ç·Î »ý·«Çϵµ·Ï ÇÏ°Ú´Ù.

1) ±âº»ÀûÀÎ ÆÐÅ°Áö¸¦ ÀÌ¿ëÇϱâ

    ÀÌ ¹æ¹ýÀº °¡Àå ½±°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î ¸®´ª½º ·¹µåÇÞ 5.2ÀÌ»óÀÇ ¹èÆ÷ÆÇÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é ±âº»ÀûÀ¸·Î ¾ÆÆÄÄ¡¿Í PHP3°¡ ±ò·Á ÀÖ°í, PHP3 ¸ðµâÀÇ °æ¿ì PostgreSQL°ú MySQL°úÀÇ APIµµ ±âº»À¸·Î ¿¬°áµÇ¾î Àֱ⠶§¹®¿¡ ´ÜÁö /etc/httpd/conf/httpd.conf¸¦ Á¶±Ý ¼öÁ¤ÇØ ÁÖ´Â °ÍÀ¸·Î PHP3ÀÇ °­·ÂÇÑ ±â´ÉµéÀ» Á¢Çغ¼ ¼ö ÀÖ´Ù. ¹æ¹ýÀº ¾ÆÁÖ °£´ÜÇÏ¿©, ¸î ºÎºÐÀÇ ÁÖ¼®À» Áö¿öÁÖ¸é µÈ´Ù.

    ¡ß ¸ÕÀú ¸ðµâÀ» ¾ÆÆÄÄ¡À§¿¡ ¿Ã·ÁÁÖ´Â LoadModule ºÎºÐÁß¿¡¼­ ´ÙÀ½ÀÇ ÁÖ¼®À» Áö¿öÁØ´Ù.
    LoadModule php_module          modules/mod_php.so
    LoadModule php3_module        modules/libphp3.so

    ¡ß ±×¸®°í MIME TYPEÀ» ¼³Á¤ÇØÁÖ´Â ºÎºÐÀÇ ´ÙÀ½ÀÇ ÁÖ¼®À» Áö¿öÁØ´Ù.
    AddType application/x-httpd-php3 .php3
    AddType application/x-httpd-php3-source .phps

    ¡ß À§ÀÇ ÁÖ¼®À» Áö¿î ÈÄ ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇØÁÖ¾î ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇà ½ÃŲ´Ù.
    % killall httpd
    % httpd

    RPMÀ¸·Î ¼³Ä¡ÇÏ´Â ¹æ¹ýµµ ¸¶Âù°¡Áö¿©¼­ ÆÐŰ¡µÈ RPMÀ» ¹Þ¾Æ¼­ ¼³Ä¡ÇÑ ÈÄ¿¡ À§ÀÇ ÁÖ¼®µé¸¸ Á¦°ÅÇØÁÖ¸é µÈ´Ù.

2) ¼Ò½º·Î ¼³Ä¡Çϱâ

    ¡ß ¿ì¼± http://www.apache.org¿¡¼­ ¾ÆÆÄÄ¡ÀÇ ¼Ò½º¸¦, http://www.php.net¿¡¼­ PHP3ÀÇ ¼Ò½º¸¦ °¡Áö°í ¿Â´Ù.

    ¡ß ´ÙÀ½ÀÇ ¸í·ÉµéÀ» ½ÇÇàÇØÁÜÀ¸·Î½á ÄÄÆÄÀÏÀ» ÇØÁØ´Ù.

    % tar xvzf apache_1.3.x.tar.gz
    % tar xvzf php-3.0.x.tar.gz
    %  cd apache_1.3.x
    % ./configure --prefix=/www
    %  cd ../php-3.0.x
    % ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
    %  make
    % make install
    % cd ../apache_1.3.x
    % ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
    % make
    % make install  

    ( ÀÌ °úÁ¤¿¡¼­ ÀνºÅçÀ» ÇÏÁö ¾Ê°í »ý¼ºµÈ ¹ÙÀ̳ʸ®¸¦ httpd¸¦ Á×ÀÎÈÄ¿¡ µ¤¾î ¾º¿öµµ µÈ´Ù.)

    % cd ../php-3.0.x
    % cp php3.ini-dist /usr/local/lib/php3.ini

    ( /usr/local/lib/php3.ini ÆÄÀÏÀº PHPÀÇ ¼³Á¤ÆÄÀÏÀÌ´Ù. ÀÌ ¼³Á¤ÆÄÀÏÀÇ À§Ä¡¸¦ ´Ù¸£°Ô ÇÏ°í ½Í´Ù¸é phpÀÇ configure¿¡¼­ --with-config-file-path=/path¸¦ »ç¿ëÇÏ¸é µÈ´Ù.)

    ¡ß ÄÄÆÄÀÏÀÌ ¸ðµÎ ³¡³µ´Ù¸é httpd.conf³ª srm.conf¿¡ ´ÙÀ½À» Ãß°¡ÇØ ÁØ´Ù.

    AddType application/x-httpd-php3 .php3

    ( .php3¿ÜÀÇ È®ÀåÀÚµµ php3·Î µ¿ÀÛÀÌ °¡´ÉÇÏÁö¸¸ °³¹ßÀÚµéÀº .php3¸¦ ÃßõÇÏ°í ÀÖ´Ù.)

    ¡ß ¾ÆÆÄÄ¡ ¼­¹ö¸¦ ´Ù½Ã ½ÃÀÛÇϵµ·Ï ÇÑ´Ù.

3) ¼³Ä¡ ÈÄ Å×½ºÆ®

    ÆÐÅ°Áö·Î ¼³Ä¡ÇÑ °æ¿ì¶ó¸é /home/httpd/htmlÀÌ Ãʱ⠵ð·ºÅ丮ÀÌ°í ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏ¿© ¼³Ä¡ÇÏ¿´´Ù¸é /www/htdocs°¡ Ãʱ⠵ð·ºÅ丮°¡ µÈ´Ù. Ãʱ⠵ð·ºÅ丮¿¡ ¿¡µðÅ͸¦ ÀÌ¿ëÇؼ­ test.php3¶ó´Â ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇØÁØ´Ù.

    <?php
    mysql_connect(¡°localhost¡±, ¡°root¡±, ¡°¡±);
    echo ¡°Hello!¡±;
    ?>

    ºê¶ó¿ìÀú¸¦ ¶ç¿ö¼­ Çѹø È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ. ¼Ò½º°¡ ±×³É Ãâ·ÂÀÌ µÈ´Ù¸é À߸ø ¼³Ä¡µÈ °ÍÀÌ°í, Á¦´ë·Î ¼³Ä¡ÇÏ¿´´Ù¸é ¿¡·¯ ¸Þ½ÃÁö ¾øÀÌ È­¸é¿¡ Hello!¶ó´Â ±ÛÀÚ°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù. ÀÚ, ÀÌÁ¦ ¸ðµç Áغñ°¡ µÇ¾ú´Ù. ±×·¯¸é PHP3ÀÇ ¼¼°è·Î µé¾î°¡º¸µµ·Ï ÇÏÀÚ.

 

3. ±âº»ÀûÀÎ PHP3ÀÇ ¹®¹ý - º¯¼ö

    PHP3ÀÇ ¹®¹ýµéÀº ±âº»ÀûÀ¸·Î C¿¡¼­ µû¿Ô°í, ÀÚ¹Ù¿Í PerlÀÇ ¿µÇâµµ ¹Þ¾Ò´Ù°í ÇÑ´Ù. C¸¦ ÀÍÈù »ç¶÷À̶ó¸é ¾î·ÆÁö ¾Ê°Ô Á¢±Ù °¡´ÉÇÒ °ÍÀÌ´Ù. ¿©±â¿¡¼­´Â Áö¸é °ü°è»ó C¿Í ºñ½ÁÇÑ ºÎºÐÀº µÇµµ·Ï »ý·«ÇÏ°í C¸¦ ÀÍÈù »ç¶÷ÀÌ Á¢±ÙÇϵµ·Ï ÇÏ°Ú´Ù.

1) PHP3 ÄÚµåÀÇ ½ÇÇà

    PHP3´Â HTML¹®¼­ ³»¿¡ µé¾î°¡´Â ¼­¹ö»çÀÌµå ½ºÅ©¸³Æ®(Server-side Script)ÀÇ Çü½ÄÀ» ÃëÇÏ°í ÀÖ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸µµ·Ï ÇÏÀÚ.

    <?php echo(¡°hello?¡±); ?>
    <? echo(¡°hello?¡±); ?>
    <script language=¡±php¡±>echo (¡°hello?¡±);</script>

    À§ÀÇ Çü½Ä ÀÌ¿Ü¿¡ ASP¿Í °°Àº Çü½ÄÀ» ÃëÇÏ°Ô ÇÒ ¼öµµ ÀÖÁö¸¸ ÁÖ·Î ¸ÇóÀ½ÀÇ <?php ·Î ½ÃÀÛÇÏ´Â Çü½ÄÀ» ¸¹ÀÌ ÃëÇÑ´Ù. µÎ ¹ø°ÀÇ »ý·«ÇüÀÇ °æ¿ì XML°úÀÇ Ãæµ¹ ¿©Áö°¡ ÀÖÀ¸¹Ç·Î µÇµµ·Ï »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.

2) º¯¼öÇü (Variable Types)

    PHP3¿¡¼­ÀÇ º¯¼öµéÀº ¸ðµÎ º¯¼ö¸í¾Õ¿¡ $°¡ ºÙ°Ô µÈ´Ù. PHP3´Â ´ÙÀ½ ÇüÅÂÀÇ º¯¼öÇüÀ» Áö¿øÇÑ´Ù.

    Scalar types, Integer, Float, String, Array Types, Linear Arrays, Hashes/Associative Arrays , Objects
    C¿Í´Â ´Þ¸® PHP3¿¡¼­´Â ¹Ì¸® º¯¼ö¸¦ ¼±¾ðÇØÁÙ ÇÊ¿ä°¡ ¾ø´Ù. ´ë½Å PHP3ÄÚµå ¼öÇàÁß¿¡ º¯¼öÀÇ °ª¿¡ µû¶ó¼­ ÀÚµ¿À¸·Î º¯¼öÇüÀÌ ¹Ù²î¾î Áö°Ô µÈ´Ù. ƯÁ¤ÇÑ º¯¼öÇüÀ¸·Î ÁöÁ¤ÇÏ°í ½ÍÀ¸¸é ij½ºÆ®¸¦ Çϰųª settype()ÇÔ¼ö¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù. ÀÌ º¯¼öÇüÀº ¹Ì¹¦ÇÑ °ü°è¿¡ Àִµ¥ ¶§·Î´Â º¯¼öÇü ¶§¹®¿¡ ÇÁ·Î±×·¡¸ÓÀÇ Àǵµ´ë·Î ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÏÁö ¾ÊÀº °æ¿ì°¡ ¹ß»ýÇϱ⵵ ÇÑ´Ù.

3) ¹è¿­ ÃʱâÈ­ (Initializing Arrays)

    ¹è¿­¿¡ ¼øÂ÷ÀûÀ¸·Î °ªÀ» ´ëÀÔÇÏ´Â ¹æ¹ýÀº ¹è¿­¿¡ ÷ÀÚ ¾øÀÌ ±×³É ´ëÀÔÇÏ¸é µÈ´Ù. ±×·¯¸é »õ·Î ´ëÀÔÇÑ °ªÀº ±× ¹è¿­ÀÇ Á¦ÀÏ ¸¶Áö¸·¿¡ ÷°¡µÈ´Ù.

    $names[] = ¡°Jill¡±;    // $names[0] = ¡°Jill¡±
    $names[] = ¡°Jack¡±;    // $names[1] = ¡°Jack¡±  

    ÀÌ¿Ü¿¡µµ array()¶ó´Â construct¸¦ »ç¿ëÇؼ­ ÃʱâÈ­ÇÒ ¼öµµ ÀÖ´Ù.

4) °´Ã¼ÀÇ ÃʱâÈ­ (Initializing objects)

    °´Ã¼ÀÇ ÃʱâÈ­´Â new ¸í·ÉÀ» ÅëÇØ object¸¦ º¯¼ö¿¡ ÀνºÅϽºÈ­ ½ÃÅ°´Â °ÍÀÌ´Ù.

    class foo {
       function do_foo() {
          echo ¡°Doing foo.¡±;
       }
       }
    $bar = new foo;
    $bar->do_foo();   

5) º¯¼ö °¡¿ë ¹üÀ§ (Variable Scope)

    º¯¼ö°¡ »ç¿ë°¡´ÉÇÑ °÷Àº º¯¼ö°¡ ¼±¾ðµÈ °÷¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â PHP3°¡ single scope¸¦ °¡Áö±â ¶§¹®ÀÌ´Ù. ¸¸¾à Àü¿ªº¯¼ö¸¦ »ç¿ëÇÏ°í ½Í´Ù¸é »ç¿ëÇÏ·Á´Â º¯¼ö¸¦ ÇÔ¼ö¾È¿¡¼­ global¼±¾ðÀ» ÇØÁÖ¾î¾ß ÇÑ´Ù.

    $a=1;
    $b=2;
    Function Sum() {
        global $a,$b;
        $b = $a + $b;
          }
    Sum();
    echo $b;

    Àü¿ªº¯¼ö¸¦ ÂüÁ¶ÇÏ´Â ¹æ¹ý Áß ´Ù¸¥ ¹æ¹ýÀº À§¿Í °°ÀÌ global·Î ¼±¾ðÇÏÁö ¾Ê°í $GLOBALS¶ó´Â Ư¼öÇÑ ¹è¿­À» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. À§ÀÇ ¿¹Á¦Áß Sum()ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²î¾î Áú ¼ö ÀÖ´Ù.
    Function Sum() {
     $GLOBALS[¡°b¡±] = $GLOBALS[¡°a¡±] + $GLOBALS[¡°b¡±];
      }

6) °¡º¯ º¯¼ö (Variable variables)

    º¯¼öÀÇ À̸§À» ¸¶À½´ë·Î º¯°æÇÒ ¼ö´Â ¾øÀ»±î? PHP3¿¡¼­´Â ÀÌ ¹æ¹ýÀ» Á¦½ÃÇÏ°í ÀÖ´Ù. ¿¹Á¦¸¦ ÅëÇؼ­ »ìÆ캸ÀÚ.

    $a = ¡°hello¡±;
    $$a = ¡°world¡±;  

    À§¿Í °°ÀÌ ÇÏ¸é ½ÇÁ¦·Î´Â $a¶ó´Â ÇÔ¼ö¿Í $hello¶ó´Â µÎ °³ÀÇ º¯¼ö°¡ »ý±ä °Í°ú µ¿ÀÏÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ´ÙÀ½ÀÇ µÎ ¹®ÀåÀº ¼­·Î °°Àº °á°ú¸¦ ³ªÅ¸³­´Ù.

    echo ¡°$a ${$a}¡±;    
    echo ¡°$a $hello¡±;  

7) PHP3 ¹Û¿¡¼­ ¿Â º¯¼öµé

    PHP3°¡ À¥ ½ºÅ©¸³Æ® ¾ð¾î·Î¼­ ¾²ÀÏ ¼ö ÀÖ¾ú´ø °ÍÀº ÀÌ·¯ÇÑ PHP3¹Û¿¡¼­ º¯¼ö¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ´ÙÀ½À» »ìÆ캸µµ·Ï ÇÏÀÚ.

    ¡ß HTML Forms (GET and POST)
    ÆûÀÌ PHP3 ½ºÅ©¸³Æ®·Î submitµÇ¸é Æû¿¡ ÀÖ´Â ¸ðµç ³»¿ëµéÀÌ ÀÚµ¿ÀûÀ¸·Î ¸¸µé¾îÁø PHP º¯¼ö·Î µé¾î¿Â´Ù. ´ÙÀ½ÀÇ ÆûÀ» º¸ÀÚ.

    <form action=¡±foo.php3¡± method=¡±post¡±>
      Name: <input type=¡±text¡± name=¡±name¡±><br>
      <input type=¡±submit¡±>
      </form>

    À§ÀÇ ÆûÀÌ submitµÇ¸é foo.php3ÀÇ ³»ºÎ¿¡´Â $nameÀ̶ó´Â º¯¼ö°¡ ¸¸µé¾îÁö°í ÀÌ º¯¼ö´Â ÆûÀÇ Name: Çʵ忡 ÀÔ·ÂÇÑ ¸ðµç ³»¿ëÀ» ´ã°í ÀÖ°Ô µÈ´Ù.

    ¡ß HTTP Cookies
    PHP3´Â HTTP ÄíÅ°¸¦ Á¦°øÇÑ´Ù. SetCookie() ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­ ÄíÅ°¸¦ ÀúÀåÇÒ ¼ö ÀÖ°í ÀúÀåµÈ ÄíÅ°´Â POST/GET°ú µ¿ÀÏÇÑ Çü½ÄÀ¸·Î PHP3 º¯¼ö·Î »ý¼ºµÇ°Ô µÈ´Ù.

    $Count++;
    SetCookie(¡°Count¡±,$Count, time()+3600);
    SetCookie(¡°Cart[$Count]¡±,$item, time()+3600);

    SetCookie() ÇÔ¼öÀÇ °æ¿ì HTTPÇì´õ¿¡ À§Ä¡ÇØ¾ß ÇϹǷΠ¾î¶°ÇÑ ¹®ÀÚº¸´Ù ¸ÕÀú¿Í¾ß ÇÑ´Ù.

    ¡ß ȯ°æ º¯¼ö (Environment variables)
    PHP3´Â ÀÚµ¿ÀûÀ¸·Î ȯ°æ º¯¼öµéÀ» º¯¼ö·Î ¸¸µé¾î ÁØ´Ù.
    echo $HOME;  /* Shows the HOME environment variable, if set. */    

8) »ó¼öÀÇ Á¤ÀÇ

    C¿¡¼­ #define¶ó´Â preprocessor¸¦ ½è´ø°Í°ú´Â ´Þ¸® define()ÇÔ¼ö¸¦ ÅëÇؼ­ »ó¼ö¸¦ Á¤ÀÇÇÑ´Ù.

    <?php
        define(¡°CONSTANT¡±, ¡°Hello world.¡±);
        echo CONSTANT; // outputs ¡°Hello world.¡±
        undefine (¡°CONSTANT¡±);
    ?>

9) Á¦¾î¹®

    PHP3ÀÇ Á¦¾î¹®Àº C¿Í °ÅÀÇ ºñ½ÁÇÏ´Ù. ´Ü »õ·Î¿î Çü½ÄÀ» Áö¿øÇØ Áִµ¥ ´ÙÀ½ÀÌ ¹Ù·Î ±×°ÍÀÌ´Ù.

    if    ( [expression1] ) :
               [statement1];
    elseif ( [expression2] ) :
               [statement2];
                     else :
               [statement3];
                     endif;

    À§ÀÇ ¿¹Á¦´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²î¾îÁú ¼ö ÀÖ´Ù.

    if ( [expression1] ) {
     [statement1];
    } elseif ( [expression2] ) {
     [statement2];
    } else {
     [statement3];
    }

    ÀÌ´Â if¹®¸¸ÀÌ ¾Æ´Ï¶ó for¹®, while¹®µµ ¸¶Âù°¡ÁöÀÌ´Ù. ÄÝ·Ð(:)À» ½á¼­ ´ÙÀ½ÀÇ Á¦¾î¹®ÀÌ ³ª¿À±â Àü±îÁöÀÇ statement¸¦ ¸ðµÎ ÇѲ¨¹ø¿¡ ó¸®ÇØÁÖ´Â °ÍÀÌ´Ù. ÀÌ´Â HTML³»¿¡¼­ Áß°ýÈ£°¡ ¾îµð¿¡ ÀÖ´ÂÁö ÆľÇÇϱâ Èûµé ¶§ Á¦¾î¹®À» ÀÌ¿ëÇÔÀ¸·Î½á Äڵ带 ´õ Àß ½Äº°ÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁØ´Ù.

10) INCLUDE

    INCLUDE¹®Àº ÁöÁ¤ÇÑ ÆÄÀÏÀ» ÀÐ°í ½ÇÇàÇÑ´Ù. ÀÌ µ¿ÀÛÀº ½ÇÇàÁß INCLUDE ¹®À» ¸¸³¯ ¶§ ¸¸´Ù ÀϾ´Ù. µû¶ó¼­ ¿©·¯ºÐÀº INCLUDE¹®À» ·çÇÁ ±¸Á¶ ¾È¿¡ µÎ¾î ¸Å¹ø ´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î µéÀ̵µ·Ï ÇÒ ¼ö ÀÖ´Ù.

    $files = array(¡®first.inc¡¯, ¡®second.inc¡¯, ¡®third.inc¡¯);
    for ($i = 0; $i < count($files); $i++) {
      include($files[$i]);
                      }

11) FUNCTION

    ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù.

    function foo( $arg_1, $arg_2, ..., $arg_n ) {
       echo ¡°Example function.\n¡±;
       return $retval;
                    }

    ÇÔ¼ö ¾È¿¡´Â ´Ù¸¥ ÇÔ¼ö³ª classÀÇ ¼±¾ð µîÀ» Æ÷ÇÔÇÑ ¸ðµç °¡´ÉÇÑ PHP3 Äڵ尡 »ç¿ëµÉ ¼ö ÀÖ´Ù.

12) CLASS

    Ŭ·¡½º´Â ¿©·¯ º¯¼ö¿Í ÀÌ º¯¼ö¸¦ Á¦¾îÇÏ´Â ÇÔ¼ö¸¦ Çϳª·Î ¹­À» ¼ö ÀÖ´Ù. Ŭ·¡½º´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π¼±¾ðµÈ´Ù.

    class Cart {
      var $items;  // Items in our shopping cart

      function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
        }
        }

    Ŭ·¡½º´Â ÇϳªÀÇ º¯¼öÇüÀ¸·Î½á new ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ¿øÇÏ´Â º¯¼ö¸¦ »ý¼ºÇØ¾ß ÇÑ´Ù.

    $cart = new Cart;
    $cart->add_item(¡°10¡±, 1);

 

4. MySQLÀ» À§ÇÑ PHP3ÀÇ APIÇÔ¼öµé

    PHP3¿¡¼­´Â MySQLÀ» À§Çؼ­ ¸¹Àº API ÇÔ¼öµéÀ» Á¦°øÇÏ°í ÀÖ´Ù. (http://www.php.net/manual/ref.mysql.php3) »ç¿ë¹ýµîÀº C¿¡¼­ »ìÆìºÃ´ø °Í°ú ºñ½ÁÇÏ´Ù.

    ¡ß int mysql_connect(string [hostname][:port], string [username], string [password]);
    mysql_connect()´Â MySQL¼­¹ö¿¡ ¿¬°áÇÑ´Ù.
    hostname : ¿¬°áÇÏ°íÀÚ ÇÏ´Â ¼­¹öÀÇ IP Address¶Ç´Â È£½ºÆ® À̸§À» ³Ö´Â´Ù.
                     ¾Æ¹«°Íµµ ³ÖÁö ¾ÊÀ¸¸é localhost°¡ µÈ´Ù.
    username : Á¢¼Ó½ÃÀÇ »ç¿ëÀÚÀÇ À̸§ÀÌ´Ù. NULLÀÌ¸é ¼­¹ö ÇÁ·Î¼¼¼­ÀÇ »ç¿ëÀÚ·Î µé¾î°£´Ù.
    password : userÀÇ ¾ÏÈ£¸¦ ³ªÅ¸³½´Ù.
    ¹Ýȯ°ª : MySQL Link identifier¸¦ ¹ÝȯÇÑ´Ù.

    ¡ß int mysql_close(int [link_identifier] );
    ¼­¹ö¿ÍÀÇ ¿¬°áÀ» Á¾·áÇÑ´Ù.

    ¡ß int mysql_select_db(string database_name, int [link_identifier] ); Á¢¼ÓÈÄ »ç¿ëÇÏ°íÀÚ ÇÏ´Â µ¥ÀÌÅͺ£À̽º¸¦ ¹Ù²ãÁØ´Ù.
    database_name : »ç¿ëÇÏ°íÀÚ ÇÏ´Â µ¥ÀÌÅͺ£À̽º À̸§
    link_identifier : mysql_connect()½Ã ¹ÝȯµÈ identifier°¡ µé¾î°£´Ù.
    ³Ö¾îÁÖÁö ¾ÊÀ¸¸é ¸Ç óÀ½ ¼öÇàÇß´ø connection¿¡ ´ëÇØ Àû¿ëµÈ´Ù.

    ¡ß int mysql_query(string query, int [link_identifier] );
    Äõ¸®¸¦ ¼öÇàÇÑ´Ù. UPDATE, INSERT, DELETEÀÇ °æ¿ì ´ÜÁö TRUE/FALSE¸¸À» ¹ÝȯÇÏ°í Á¾·áÇϳª, SELECT Äõ¸®ÀÇ °æ¿ì ¼º°øÇÏ¸é »õ result identifier¸¦ ¹ÝȯÇϹǷΠ³ªÁß¿¡ ²À mysql_free_result()¸¦ »ç¿ëÇؼ­ »ç¿ëÇÑ ÀÚ¿øÀ» ¹ÝȯÇϵµ·Ï ÇÑ´Ù.

    ¡ß int mysql_db_query(string database, string query, int link_identifier); database¸íÀ» ¸í½ÃÇØÁØ Äõ¸®¸¦ ¼öÇàÇÑ´Ù.

    ¡ß int mysql_affected_rows(int [link_identifier] );
    INSERT, UPDATE, DELETE µîÀÇ query·Î ¿µÇâÀ» ¹ÞÀº rowÀÇ ¼ö¸¦ ¹ÝȯÇÑ´Ù.

    ¡ß array mysql_fetch_row(int result);
       row¸¦ ¹è¿­ÀÇ ÇüÅ·Π°¡Á®¿Â´Ù.

    ¡ß array mysql_fetch_array(int result);
        row¸¦ ¹è¿­ÀÇ ÇüÅ·Π°¡Á®¿Â´Ù.
    ´Ù¸¸ mysql_fetch_row()¿Í ´Ù¸¥ Á¡Àº associative ¹è¿­·Î °¡Á®¿Â´Ù´Â Á¡ÀÌ´Ù. ÀÌ·¸°Ô °¡Áö°í ¿Â ¹è¿­Àº Çʵå À̸§À¸·Î Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.

    ¡ß int mysql_fetch_object(int result);
       row¸¦ °´Ã¼·Î °¡Á®¿Â´Ù. (°´Ã¼·Î °¡Á®¿Â´Ù´Â °ÍÀ» Á¦¿ÜÇϸé mysql_fetch_row()¿Í °°´Ù.)

    ¡ß int mysql_num_rows(string result);
       result¿¡ ÃÑ ¸î °³ÀÇ row°¡ ÀÖ´ÂÁö ¸®ÅÏÇÑ´Ù.

    ¡ß int mysql_num_fields(int result);
       result¿¡ ÃÑ ¸î °³ÀÇ field°¡ ÀÖ´ÂÁö ¸®ÅÏÇÑ´Ù.

    ¡ß int mysql_result(int result, int row, mixed field);
       result set¿¡¼­ ÇϳªÀÇ ¼¿ÀÇ ³»¿ëÀ» ¹ÝȯÇØÁØ´Ù.

    ¡ß int mysql_errno(int [link_identifier] );
       °¡Àå ÃÖ±Ù¿¡ mysql¿¡ ÀϾ ¿¡·¯ÀÇ ¹øÈ£¸¦ ¸®ÅÏÇÑ´Ù.

    ¡ß string mysql_error(int [link_identifier] );
       °¡Àå ÃÖ±Ù¿¡ ÀϾ ¿¡·¯ ¸Þ½ÃÁö¸¦ ¸®ÅÏÇÑ´Ù.

 

5. °£´ÜÇÑ ¿¹Á¦

    ±×·³ À§¿¡¼­ »ìÆ캻 API¸¦ ÀÌ¿ëÇؼ­ °£´ÜÇÑ DB¿¬µ¿ ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ. ¿ì¼± 2ȸ¶§ »ç¿ëÇß´ø super ¶ó´Â µ¥ÀÌÅͺ£À̽º¸¦ ÀÌ¿ëÇÏ¿© ÀÏÀÏÀÌ SQL±¸¹®À» ¾²Áö ¾Ê°í DB¿¡ ±¸¸Å ³»¿ªÀ» ÀÔ·ÂÇÏ´Â ÆäÀÌÁö¸¦ ÀÛ¼ºÇØ º¸µµ·Ï ÇÏÀÚ.

    preinsertexport.php3
    <html>
    <body>
    <?php
    // µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ´Ù.
     $connect = mysql_connect(¡°localhost¡±,¡±root¡±) or
     die ( ¡° SQL Server¿¡ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù.¡± );

    // ¿ì¸®°¡ ¸¸µé¾î ³õÀº super µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÑ´Ù.
     mysql_select_db( ¡°super¡±, $connect);

    // Äõ¸®¸¦ ¸¸µç´Ù. (ItemÅ×ÀÌºí¿¡¼­ µ¥ÀÌÅ͸¦ °¡Á®¿À´Â Äõ¸®)
     $query = ¡°select * from Item¡±;

    // Äõ¸®¸¦ ¼öÇàÇÑ´Ù. ¼öÇàµÈ °á°ú´Â result¿¡ º¸°üµÈ´Ù.
     $result = mysql_query($query, $connect);

    // Àüü rowÀÇ °³¼ö¸¦ ÆÇ´ÜÇÑ´Ù.
     $total = mysql_numrows($result);

    // rowÀÇ °³¼ö°¡ 0ÀÌ ¾Æ´Ï¶ó¸é ItemÀÌ Á¸ÀçÇÏ´Â °ÍÀ̹ǷΠ´ÙÀ½À» ¼öÇàÇÑ´Ù.
     if ($total) :
     ?>
     <form action=¡±insertexport.php3¡± method=post>
     <select name=¡±Id¡±>
     <?php
      // ItemÅ×ÀÌºí¿¡¼­ row¸¦ Çϳª¾¿ »©¿Â µÚ Ãâ·ÂÇÑ´Ù.
      for ($i = 0; $i < $total; $i++) {
       $row = mysql_fetch_array($result);
        echo(¡°<option value=\¡±$row[Id]\¡±>$row[name]</option>\n¡±);
        }
       ?>
     </select>
     <input type=¡±text¡± name=¡±how_many¡±>°³
     <input type=¡±submit¡± value=¡±±¸¸Å¡±>
     </form>
     <?php
     // Item Å×ÀÌºí¿¡ µ¥ÀÌÅÍ°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ¾Æ·¡ÀÇ ¹®ÀåÀ» Ãâ·ÂÇÑ´Ù.
        else:
        ?>
    ItemÀÌ ÀÔ·ÂµÈ °ÍÀÌ ¾ø½À´Ï´Ù.
        <?php
        endif;
        ?>
    </body>
    </html>
    insertexport.php3
    <html>
    <body>
    <?php
    // µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ´Ù.
     $

    connect = mysql_connect(¡°localhost¡±,¡±root¡±) or
       die ( ¡° SQL Server¿¡ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù.¡± );

    // ¿ì¸®°¡ ¸¸µé¾î ³õÀº super µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÑ´Ù.
     mysql_select_db( ¡°super¡±, $connect);

    // ItemÅ×ÀÌºí¿¡¼­ $Id¸¦ °¡Áø Æ©ÇÃÀ» °¡Á®¿Â´Ù.
    // $Id´Â ÀÌÀü ÆäÀÌÁö¿¡¼­ ÀԷ¹޾Ƽ­ POST Method·Î »ý¼ºµÇ¾ú´Ù.
     $query = ¡°select * from Item where Id=¡± . $Id;
     $result = mysql_query($query, $connect);
     $row = mysql_fetch_array($result);

    // ItemÅ×ÀÌºí¿¡¼­ °¡Á®¿Â µ¥ÀÌÅÍ¿Í ÀԷ¹ÞÀº µ¥ÀÌÅ͸¦ // Á¶ÇÕÇÏ¿© exportÅ×ÀÌºí¿¡ ³ÖÀ» Äõ¸®¸¦ »ý¼ºÇÑ´Ù.
     $query = ¡°insert into export values (NULL , ¡®¡° .   
     $row[name] . ¡°¡® , ¡° .
     $how_many . ¡° , ¡° . $how_many * $row[cost] .
      ¡° , CURRENT_DATE) ¡°;
     mysql_query($query, $connect);

    // exportÅ×À̺íÀÇ ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù.
     $query = ¡°select * from export¡±;
     $result = mysql_query($query, $connect);
     $total = mysql_numrows($result);
     if ($total) :
     ?>
     <table>
     <tr>
     <td>¹øÈ£</td>
     <td>»óÇ°¸í</td>
     <td>¼ö·®</td>
     <td>ÃÑ°¡°Ý</td>
     <td>±¸¸ÅÀÏ</td>
     </tr>
     <?php
      for ($i = 0; $i < $total; $i++) {
       $row = mysql_fetch_array($result);
       echo(¡°<tr>¡±);
       echo(¡°<td>$row[No]</td>¡±);
       echo(¡°<td>$row[name]</td>¡±);
       echo(¡°<td>$row[how_many]</td>¡±);
       echo(¡°<td>$row[how_much]</td>¡±);
       echo(¡°<td>$row[when]</td>¡±);
       echo(¡°</tr>¡±);
       }
      ?>
     </table>
     <?php
        else:
      ?>
    ÆÇ¸ÅµÈ °ÍÀÌ ¾ø½À´Ï´Ù.
     <?php

        endif;
      ?>
    </body>
    </html>

    À§ÀÇ ÇÁ·Î±×·¥Àº preinsertexport.php3¸¦ ÀоîµéÀ̸é ÀÔ·ÂÆûÀÌ ³ª¿À°Ô µÈ´Ù. ÀÔ·ÂÆû¿¡¼­ ÄÞº¸¹Ú½º¿¡ ¿©·¯°³ÀÇ ¾ÆÀÌÅÛÀ» Ãâ·ÂÇØ ÁÖ°í ÀÖ°í ±× ¾ÆÀÌÅÛÀ» °í¸¥ ÈÄ submit¹öÆ°À» ´©¸§À¸·Î½á insertexport.php3¿¡ $Id¿Í $how_many¶ó´Â º¯¼ö°¡ ³Ñ¾î°¡°Ô µÈ´Ù.

    insertexport.php3¿¡¼­´Â ÀԷ¹ÞÀº $Id¸¦ ÅëÇؼ­ ItemÅ×À̺íÀ» °Ë»öÇÏ¿© ±× ¾ÆÀÌÅÛÀÇ À̸§°ú °¡°ÝÁ¤º¸¸¦ °¡Á®¿Â´Ù. °¡Á®¿Â Á¤º¸¿Í $how_many º¯¼ö¸¦ ÀçÁ¶ÇÕÇÏ¿© exportÅ×ÀÌºí¿¡ INSERTÄõ¸®¸¦ ÁÖ°Ô µÇ´Â °ÍÀÌ´Ù.

ÀÌ·Î½á °£´ÜÇÑ ÀԷ°ú ¸®½ºÆ®Çغ¸´Â ÇÁ·Î±×·¥À» º¸¾Ò´Ù. À̸¦ ÀÀ¿ëÇÏ¸é °£´ÜÇÑ ¼îÇθôÀº ½±°Ô ±¸ÃàÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½È¸¿¡´Â À̸¦ ÀÌ¿ëÇؼ­ °£´ÜÇÑ ¼îÇθôÀ» ±¸ÃàÇغ¸µµ·Ï ÇÏ°Ú´Ù.




¡ã top

homeÀ¸·Î...