MySQL °­ÁÂ(¥²)

ÇãÁ¤¼ö<³ª¿ì´©¸®:wertyu>


     

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

    Áö³­ È£¿¡¼­´Â MySQLÀ» ÀÌ¿ëÇÏ¿© °£´ÜÇÏ°Ô³ª¸¶ ½´ÆÛ ¸¶ÄÏ¿¡¼­ ¸ÅÃâÀ» °ü¸®ÇÏ´Â ¿¹¸¦ µé¾î SQL ¾ð¾î¿¡ ´ëÇؼ­ °£´ÜÈ÷ »ìÆì º¸¾Ò´Ù.
    ±âº»ÀûÀÎ SQL ¾ð¾î¸¸ ¾Ë¾Æµµ MySQLÀÇ Client ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© DataµéÀ» °ü¸®ÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸, SQL ¾ð¾î¸¦ ¸ð¸£°Å³ª ÄÄÇ»Å͸¦ Àß ´Ù·çÁö ¸øÇÏ´Â »ç¶÷µéÀº Database¸¦ ¾î¶»°Ô ¾µ ¼ö ÀÖÀ»±î. ¿ì¸®³× ½´ÆÛ¸¶ÄÏ ¾ÆÀú¾¾µé Áß¿¡¼­ SQL ¾ð¾î¸¦ »ç¿ëÇؼ­ ¸ÅÃâÀ» °ü¸®ÇÒ ¼ö ÀÖÀ» ¾ÆÀú¾¾µéÀÌ ¾ó¸¶³ª ÀÖÀ»±î.

    À̹ø È£¿¡¼­´Â MySQLÀÇ C API¿¡ ´ëÇؼ­ ¾Ë¾Æº»´Ù. MySQLÀÇ C API¸¦ ÀÌ¿ëÇϸé C³ª C++·Î § ÇÁ·Î±×·¥¿¡¼­ MySQL ¼­¹ö¿¡ Á¢¼ÓÀ» ÇÒ ¼ö ÀÖ´Ù. (¿ì¸®³× ½´ÆÛ¸¶ÄÏ ¾ÆÀú¾¾´Â ¾î·Á¿î SQL ¾ð¾î¸¦ ¹è¿ï ÇÊ¿ä°¡ ¾ø´Ù. ½´ÆÛ¸¶ÄÏ ¾ÆÀú¾¾¸¦ ³·Ã纸´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î Ç×ÀÇÇÏ´Â ÀÏÀÌ ¾ø¾úÀ¸¸é ÇÑ´Ù.)

    MySQL°ú ¿¬µ¿ÇÏ´Â ¹æ¹ýÀº C API¸¸ÀÌ ÀüºÎ´Â ¾Æ´Ï°í, PHP3, Perl, MyODBC, JDBC¸¦ ÀÌ¿ëÇÏ¿© ¿¬µ¿À» ÇÒ ¼ö ÀÖ´Ù. À̹ø ȸ¿¡¼­´Â C API¿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ·Ï ÇÏ°í, ´ÙÀ½ ȸ¿¡¼­ PHP3¿Í MySQLÀ» ÀÌ¿ëÇÏ¿© Web°ú ¿¬µ¿ÇÏ´Â ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸µµ·Ï ÇÑ´Ù.

 

2. ÇÁ·Î±×·¥ ÄÄÆÄÀÏ

    C API¸¦ ¼Ò°³Çϱâ Àü¿¡ ÀÏ´Ü gccÀÇ ¿É¼ÇÀ» Àß ¸ð¸£´Â µ¶ÀÚ¸¦ À§ÇØ MySQLÀÇ C API¸¦ ÀÌ¿ëÇÑ ¼Ò½º Äڵ带 ÄÄÆÄÀÏÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æ º»´Ù.
    ¸ÕÀú ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸ÀÚ.

      #include <stdio.h>
      #include <mysql.h>
      #include <errno.h>

      void main(void)
      { MYSQL mysql ;
              
      mysql_init(&mysql) ;

      if(!mysql_real_connect(&mysql, NULL, ¡°»ç¿ëÀÚÀ̸§¡±,¡±¾ÏÈ£¡±, NULL ,3306, (char *)NULL, 0))
      {printf(¡°%s¡¬n¡±,mysql_error(&mysql));
      exit(1) ;}
      printf(¡°¼º°øÀûÀ¸·Î ¿¬°áµÇ¾ú½À´Ï´Ù.¡¬n¡±) ;
      mysql_close(&mysql) ;}

    À§ÀÇ ¿¹Á¦´Â MySQL ¼­¹ö¿¡ Á¢¼ÓÀ» ÇÏ¿©, ¿¬°áÀÌ Á¦´ë·Î µÇ¾úÀ» °æ¿ì ¡®¼º°øÀûÀ¸·Î ¿¬°áµÇ¾ú½À´Ï´Ù.¡¯¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í Á¾·áÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¿¬°áÀÌ ¾È µÉ °æ¿ì ¿Ö ¿¬°áÀÌ ¾È µÇ´ÂÁö Ãâ·ÂÀ» ÇÏ°Ô µÈ´Ù. ¿¡·¯°¡ ³ª¸é ±ÛÀÇ ÈĹݺο¡ ÀÖ´Â ¡®¹®Á¦ Çذᡯ ºÎºÐÀ» ÀÐ¾î º¸±æ ¹Ù¶õ´Ù. ÀÏ´Ü À§¿¡ ³ª¿Â ÇÔ¼öµéÀÇ ¼³¸íÀº µÚ¿¡ ÇÏ°í ÄÄÆÄÀÏÀ» ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸ÀÚ.
    À§ÀÇ ¼Ò½º Äڵ尡 con.c¶ó°í °¡Á¤À» ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÁ·ÒÇÁÆ®¿¡¼­ ¸í·ÉÀ» ³»¸®¸é µÈ´Ù.

      $ gcc -o con con.c -I/usr/local/include/mysql
      -L/usr/local/lib/mysql -lmysqlclient

    ÀÌ·¸°Ô Çϸé conÀ̶ó´Â ½ÇÇà ÆÄÀÏÀÌ »ý±â°Ô µÈ´Ù. -I ¿É¼ÇÀº Çì´õ ÆÄÀÏÀÇ °æ·Î¸¦ Á¤ÇÑ´Ù.
    Áï, mysql.hÀÇ °æ·Î¸¦ ÁöÁ¤ÇØ ÁÖ¸ç, ÇÊÀÚÀÇ °æ¿ì ±× °æ·Î°¡/usr/local/include/mysqlÀÌ´Ù. °¢ÀÚ °æ·Î°¡ Ʋ¸®¹Ç·Î Àڽſ¡°Ô ¸Â°Ô º¯°æÀ» ÇÏÀÚ. º¸Åë /usr/include/mysql ȤÀº/usr/local/include/mysql ȤÀº /usr/include¿¡ Á¸ÀçÇÑ´Ù. /usr/include¿¡ ÀÖÀ» °æ¿ì¿¡´Â ÀÌ ¿É¼ÇÀ» ÁÖÁö ¾Ê¾Æµµ µÈ´Ù.
    -l ¿É¼ÇÀº ¸µÅ·½Ã »ç¿ëÇÒ ¶óÀ̺귯¸®¸¦ ÁöÁ¤ÇÑ´Ù.
    MySQLÀÇ C API¸¦ »ç¿ëÇßÀ» °æ¿ì¿¡´Â ²À -lmysqlclient¶ó´Â ¿É¼ÇÀ» ÁÖ¾î¾ß ÇÑ´Ù.

    -L/usr/local/lib/mysql ¿É¼ÇÀº mysqlclient¶ó´Â ¶óÀ̺귯¸®ÀÇ °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¿É¼Çµµ »ç¿ëÀÚ¿¡ µû¶ó ´Ù¸£´Ù. MySQLÀÇ ¼³Ä¡ ½Ã¿¡ ¾îµð¿¡ ¶óÀ̺귯¸®¸¦ ¼³Ä¡Çß´ÂÁö È®ÀÎÇÏÀÚ. ÁöÁ¤µÈ µð·ºÅ͸® ¹Ø¿¡¼­ libmysqlclient.so ¶ó´Â ¶óÀ̺귯¸®¸¦ º¼ ¼ö ÀÖ´Ù.
    ¿É¼Ç°ú °æ·Î¸¦ Àß ÁöÁ¤ÇØ ÁÖ¾ú´Ù¸é À§ÀÇ ¼Ò½º ÄÚµå´Â Àß ÄÄÆÄÀÏ µÇ°í, ½ÇÇà½Ã¿¡ MySQL µ¥¸óÀÌ ½ÇÇà ÁßÀ̶ó¸é ¡®¼º°øÀûÀ¸·Î ¿¬°áµÇ¾ú½À´Ï´Ù.¡¯¶ó´Â ¸Þ½ÃÁö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

3. C API ÀÚ·áÇü

    C API¿¡¼­ ¾²ÀÌ´Â ÀÚ·áÇü¿¡ ´ëÇؼ­ ¾Ë¾Æ º¸ÀÚ.
    MYSQL : Database¿ÍÀÇ ¿¬°áÀ» °ü¸®ÇÏ´Â ±¸Á¶Ã¼ÀÌ´Ù. ´ëºÎºÐÀÇ C API ÇÔ¼ö¿¡¼­ ¾²ÀδÙ.
    MYSQL_RES : SELECT µî °á°ú¸¦ ¸®ÅÏÇÏ´Â queryÀÇ °á°ú¸¦ ³ªÅ¸³»´Â ÀÚ·áÇüÀÌ´Ù.
    MYSQL_ROW : MYSQL_RES¿¡¼­ ÇϳªÀÇ ·¹Äڵ徿 °ªÀ» ¾ò¾î ¿Ã¶§ ¾²ÀÌ´Â ÀÚ·áÇüÀÌ´Ù.
    MYSQL_FIELD : ÇʵåÀÇ À̸§°ú ÇʵåÀÇ Å¸ÀÔ µî Çʵ忡 °üÇÑ Á¤º¸¸¦ ÀúÀåÇϴ ÀÚ·áÇüÀÌ´Ù.

 

4. MySQL Database¿¡ ¿¬°áÇϱâ

    ÀÌÁ¦ ¸ðµç Áغñ¸¦ ¸¶ÃèÀ¸¹Ç·Î º»°ÝÀûÀ¸·Î MySQL C API¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ.

    * MYSQL* mysql_init(MYSQL *mysql)
    mysql_real_connect()¸¦ À§ÇÏ¿© MYSQL °´Ã¼¸¦ ÃʱâÈ­ÇÑ´Ù. Ưº°È÷ ÇÏ´Â ÀÏÀº ¾øÀ¸³ª MYSQL °´Ã¼¸¦ ÃʱâÈ­ ÇϹǷΠmysql_real_connect() Àü¿¡ ²À È£ÃâÇÏ¿© ÁÖÀÚ.

    * MYSQL* mysql_real_connect(MYSQL* mysql, const char* host, const char* user,
    const char* passwd, const char* db, uint port, const char* unix_socket, uint client_flag)
    host¿¡ ÁöÁ¤µÈ ¼­¹ö·Î ¿¬°áÀ» ½ÃµµÇÏ´Â ÇÔ¼öÀÌ´Ù.
    mysql_get_client_info() ÇÔ¼ö¸¦ Á¦¿ÜÇÑ ¸ðµç API ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ²À È£ÃâÇÏ¿©¾ß ÇÏ´Â ÇÔ¼öÀÌ´Ù.
    °¢ ÀÎÀÚ¿¡ ´ëÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù.

    mysql    : MYSQL º¯¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ ÇüÀÌ´Ù.
    host      : ¿¬°áÇÏ°íÀÚ ÇÏ´Â ¼­¹öÀÇ IP Address ȤÀº µµ¸ÞÀÎ À̸§À» Àû¾îÁÖ¸é µÈ´Ù.
                  NULL·Î Àû¾îÁÖ¸é localhost¸¦ ÀǹÌÇÑ´Ù.
    user      : Á¢¼Ó½ÃÀÇ »ç¿ëÀÚ À̸§ÀÌ´Ù. NULLÀ̸é ÇöÀç loginÇÑ user ID°¡ µÈ´Ù.
    passwd : userÀÇ ¾ÏÈ£¸¦ ³ªÅ¸³½´Ù. NULLÀÌ¸é ¾ÏÈ£°¡ ¾ø´Ù´Â ÀǹÌÀÌ´Ù.
    db        : Á¢¼Ó½Ã¿¡ »ç¿ëÇÏ°íÀÚ ÇÏ´Â database¸¦ ³ªÅ¸³½´Ù. NULL·Î ÁöÁ¤À» ÇÏ¸é ¿¬°á ÈÄ¿¡
                  mysql_select_db() ȤÀº mysql_query()¸¦ ÀÌ¿ëÇؼ­ ÁöÁ¤ÇÒ ¼ö ÀÖ°í,
                  database¸¦ ¹Ù²Ü ¼öµµ ÀÖ´Ù.
    port       : TCP/IP ¿¬°á½Ã¿¡ »ç¿ëÇÒ Æ÷Æ® ¹øÈ£¸¦ ³ªÅ¸³½´Ù.
    unix_socket : º¸Åë NULL·Î ÇϸéµÈ´Ù.
    client_flag   : ÀÌ ÀÎÀÚµµ º¸Åë 0À¸·Î ÇØÁÖ¸é µÈ´Ù.
    mysql_real_connect()´Â ¼º°øÀûÀ¸·Î ¿¬°áÀÌ µÇ¸é, MYSQL Æ÷ÀÎÅ͸¦ ³Ñ°ÜÁÖ°í ¿¬°á¿¡ ½ÇÆÐÇÏ¿´À» °æ¿ì NULLÀ» ¸®ÅÏÇÑ´Ù.
    ¿¬°á¿¡ ½ÇÆÐ ÇÏ¿´À» °æ¿ì ÀÌ ±ÛÀÌ ¸¶Áö¸·¿¡ ÀÖ´Â ¡®¹®Á¦ ÇذᡯºÎºÐÀ» ÀÐ¾î º¸±æ ¹Ù¶õ´Ù. »ç¿ë ¿¹´Â À§ÀÇ ¿¹Á¦¿¡ ³ª¿ÍÀÖ´Ù.

    * void mysql_close(MYSQL* mysql)
    ¼­¹ö¿ÍÀÇ ¿¬°áÀ» ²÷°í mysql¿¡ ÇÒ´çµÇ¾ú´ø ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.

 

5. Query¿Í °á°ú °ªÀ» ¾ò¾î ¿À±â

    ¼­¹ö¿Í ¼º°øÀûÀ¸·Î ¿¬°áÀÌ µÇ¾ú´Ù¸é, ÀÌÁ¦ ¿øÇÏ´Â Query¸¦ ÇÏ°í, ±× °á°ú °ªÀ» ¾ò¾î ¿Ã ¼ö ÀÖ´Ù. Query¸¦ ÇÒ ¼ö ÀÖ´Â ÇÔ¼ö´Â mysql_query()¿Í mysql_real query() µÎ °¡Áö°¡ ÀÖ´Ù.

    * int mysql_query(MYSQL* mysql, const char* query) :
    query¸¦ ½ÇÇà ½ÃŲ´Ù. mysql Ŭ¶óÀ̾ðÆ®¿¡¼­ Çß´ø °Í ó·³ queryÀÇ ³¡¿¡ ¡®;¡¯°¡ Æ÷ÇԵǾ´Â ¾È µÈ´Ù. queryÀÇ ³¡Àº NULL ¹®ÀÚ(¡®\0¡¯)ÀÌ´Ù. µû¶ó¼­ ¹ÙÀ̳ʸ® µ¥ÀÌŸ°¡ ¼¯ÀÎ query´Â ¼öÇàÀ» ÇÒ ¼ö ¾ø´Ù. ¹ÙÀ̳ʸ® µ¥ÀÌŸ°¡ ¼¯Àº queryÀÇ Áß°£¿¡´Â NULL ¹®ÀÚ°¡ ¿Ã ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. query¸¦ ¼º°øÀûÀ¸·Î ¸¶Ãè´Ù¸é 0À» ¸®ÅÏÇÑ´Ù.

    * int mysql_real_query(MYSQL* mysql, const char* query, unsigned int length) :
    mysql_query()´Â queryÀÇ ³¡À» NULL ¹®ÀÚ·Î ±¸ºÐÀ» Çϴµ¥ ¹ÝÇØ, mysql_real_query´Â queryÀÇ ³¡À» length ¸¸Å­ÀÇ ±æÀÌ·Î ±¸ºÐÇÑ´Ù. µû¶ó¼­ NULL ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ ¹ÙÀ̳ʸ® µ¥ÀÌŸ°¡ ÀÖ´Â queryµµ ¼öÇàÀ» ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑmysql_query()´Â³»ºÎÀûÀ¸·Îstrlen()¸¦ »ç¿ëÇÏÁö¸¸, mysql_real_query()´Â ±×·¸Áö ¾ÊÀ¸¹Ç·Î Á»´õ ºü¸£´Ù. ¸¶Âù°¡Áö·Î query¸¦ ¼º°øÀûÀ¸·Î ¼öÇàÇÏ¿´À» °æ¿ì 0À» ¸®ÅÏÇÑ´Ù.
    À§ÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© query¸¦ ¼öÇàÇÒ ¼ö°¡ ÀÖ´Ù. È£ÃâÇÏ´Â ¹æ¹ýÀº ¸Å¿ì °£´ÜÇÏ´Ù.

    mysql_query(&mysql, ¡°SELECT * FROM dome¡±) ;
    À§¿Í °°ÀÌ query¸¦ ¼öÇàÇÏ¸é µÈ´Ù.
    query¸¦ ¼º°øÀûÀ¸·Î ¼öÇàÇß´Ù¸é, ÀÌÁ¦ °á°ú °ªÀ» ¾ò¾î ¿Í¾ß ÇÑ´Ù.

    * MYSQL_RES* mysql_store_result(MYSQL* mysql)
    * MYSQL_RES* mysql_use_result(MYSQL* mysql)
    À§ µÎ ÇÔ¼ö´Â ¸ðµÎ ¼­¹ö·ÎºÎÅÍ °á°ú °ªÀ» ¾ò¾î ¿À´Âµ¥, Â÷ÀÌ´Â queryÀÇ °á°ú·Î ¸®ÅϵǴ ROWµéÀ» ÇѲ¨¹ø¿¡ ¸ðµÎ ¼­¹ö·ÎºÎÅÍ ¾ò¾î ¿Ã °ÍÀÎÁö(mysql_store_result()), ȤÀº Çѹø¿¡ ÇÑ °³ÀÇ ROW¸¦ ¾ò¾î ¿Ã °Í(mysql_use_result())ÀÇ Â÷ÀÌÀÌ´Ù.
    mysql_store_result()´Â ROWµéÀ» ÇÑ ²¨¹ø¿¡ ¸ðµÎ ¾ò¾î¿Í Ŭ¶óÀ̾ðÆ®ÀÇ ¸Þ¸ð¸®¿¡ ÀúÀåÀ» ÇÑ´Ù. µû¶ó¼­ ¸Å¹ø ROW¸¦ ¾ò¾î ¿À±â À§ÇØ ¼­¹ö¿¡ Á¢±ÙÀ» ÇÒ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ¼Óµµ°¡ ºü¸£´Ù. ´ë½Å °á°ú·Î ³Ñ¾î¿Â ROWÀÇ Å©±â°¡ Ŭ °æ¿ì ¸¹Àº ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ°Ô µÈ´Ù.
    ¶Ç mysql_store_result()ÀÇ ÀåÁ¡Àº mysql_data_seek()³ª mysql_row_seek()¸¦ ÀÌ¿ëÇÏ¿© ÇöÀç ROW¿¡¼­ ¾ÕÀ̳ª µÚÀÇ ROW·Î ÀÚÀ¯ÀÚÀç·Î ¿Ô´Ù °¬´Ù ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ¶ÇÇÑ, mysql_num_rows()¸¦ ÀÌ¿ëÇÏ¿©, ¸î °³ÀÇ ROW°¡ ¸®ÅϵƴÂÁöµµ ¾Ë ¼ö ÀÖ´Ù.

    ¹Ý¸é mysql_use_result()´Â ÇÑ ¹ø¿¡ ÇÑ °³ÀÇ ROW¸¦ ¼­¹ö·ÎºÎÅÍ °¡Á® ¿Â´Ù. µû¶ó¼­ ¸Þ¸ð¸®¸¦ ¸¹ÀÌ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ÇÏÁö¸¸, mysql_store_result()¿Í °°Àº ÀåÁ¡À» °¡Áö Áö ¾Ê´Â´Ù. ¸®ÅϵǴ ROW°¡ Ưº°È÷ Å©Áö ¾ÊÀº °æ¿ì¶ó¸é, º¸Åë mysql_store_result()¸¦ È£ÃâÇÏ´Â °ÍÀÌ ÁÁ´Ù.

    °á°ú °ªÀ» ¾ò¾î ¿Ô´Ù¸é mysql_fetch_row()¸¦ ÀÌ¿ëÇÏ¿© °¢°¢ÀÇ row¿¡ ÀÖ´Â µ¥ÀÌŸ µé¿¡ Á¢±ÙÀ» ÇÒ ¼ö ÀÖ´Ù.

    MYSQL_ROW mysql_fetch_row(MYSQL_ROW* result)
    result¿¡ ÀÖ´Â ROWµé¿¡¼­ ÇÑ °³ÀÇ ROW¸¦ ¾ò¾î ¿Â´Ù. ÇÑ °³ÀÇ ROW¿¡¼­ °¢°¢ÀÇ field´Â ¹è¿­ ÇüÅ·Πµé¾î ÀÖ´Ù. ´õ ÀÌ»ó °¡Á®¿Ã ROW°¡ ¾øÀ¸¸é NULLÀ» ¸®ÅÏÇÑ´Ù.
    ÇöÀçÀÇ result¿¡ ¸î °³ÀÇ field°¡ ÀÖ´ÂÁö mysql_num_fields()¸¦ ÀÌ¿ëÇÏ¿© ¾Ë ¼ö ÀÖ´Ù.

    int mysql_num_fields(MYSQL_RES* result)

    ÀÌÁ¦ ½ÇÁ¦·Î query¸¦ ¼öÇàÇÏ°í, °á°ú¸¦ Ãâ·ÂÇÏ¿© º¸ÀÚ.

      1:      #include <stdio.h>
      2:      #include <mysql.h>
      3:      #include <errno.h>
      4:
      5:      void main(void)
      6:      {
      7:      MYSQL           mysql ;
      8:      MYSQL_RES*      res ;   
      9:      MYSQL_ROW       row ;
      10:     int             fields ;
      11:             
      12:     mysql_init(&mysql) ;
      13:     
      14:     if(!mysql_real_connect(&mysql, NULL, ¡°»ç¿ëÀÚ¡±,¡±¾ÏÈ£¡±, ¡°test¡±, 3306, (char *)NULL, 0))
      15:     {
      16:     printf(¡°%s¡¬n¡±,mysql_error(&mysql));
      17:                       exit(1) ;
      18:             }
      19:     
      20:     if(mysql_query(&mysql, ¡°USE super¡±) )
               // mysql_query()´Â query ¼öÇà½Ã¿¡ ¿¡·¯°¡ ³ª°Ô µÇ¸é
               // 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÑ´Ù.
      {
      printf(¡°%s¡¬n¡±, mysql_error(&mysql) ;
                              exit(1) ;
                        }
      21:     if(mysql_query(&mysql, ¡°SELECT * FROM dome¡±) )
      {
      printf(¡°%s¡¬n¡±, mysql_error(&mysql) ;
                              exit(1) ;
                                          }
      22:     
      23:     res = mysql_store_result( &mysql ) ;
      24:     fields = mysql_num_fields(res) ;
      25:     
      26:     while( ( row = mysql_fetch_row( res ) ))
      27:             {
      28:     for( cnt = 0 ; cnt < fields ; ++cnt)
      29:     printf(¡°%12s ¡°, row[cnt]) ;
      30:
      31:     printf(¡°¡¬n¡±) ;
      32:             }
      33:
      34:       mysql_free_result( res ) ;
      35:     mysql_close(&mysql) ;
      36:     }

    12¹ø ÁÙÀº mysql_init()À» ÀÌ¿ëÇÏ¿© MYSQL °´Ã¼¸¦ ÃʱâÈ­ ÇÏ´Â °úÁ¤ÀÌ´Ù.
    14¹ø ÁÙÀº ½ÇÁ¦ MySQL ¼­¹ö¿Í ¿¬°áÀ» ½ÃµµÇÏ´Â ºÎºÐÀÌ´Ù. ¿¬°á¿¡ ½ÇÆÐÇÏ¿´À» °æ¿ì NULLÀ» ¸®ÅÏÇϹǷΠ15-18¹ø ÁÙ¿¡¼­, ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù.
    20¹ø ÁÙÀº ¡°use super¡±¶ó´Â query¸¦ ÀÌ¿ëÇÏ¿© ¡®super¡¯ database¸¦ »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÏ´Â ºÎºÐÀÌ´Ù. »ç¿ëÇÏ°íÀÚ ÇÏ´Â database´Â mysql_real_connect()¿¡¼­ ÁöÁ¤À» ÇÒ ¼öµµ ÀÖ°í, ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ¹Ù²Ù°íÀÚ ÇÒ ¶§´Â ¡°use DBÀ̸§¡±°ú °°Àºquery¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ°í, ȤÀº mysql_select_db()¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù.
    21¹ø ÁÙÀº ¡°SELECT * FROM dome¡± query¸¦ ¼öÇàÇÏ´Â ºÎºÐÀÌ´Ù. dome Å×À̺íÀÇ ¸ðµç Ä÷³À» ¸®ÅÏÇϵµ·Ï ÇÏ¿´´Ù.
    23¹ø ÁÙÀº mysql_store_result()¸¦ ÀÌ¿ëÇÏ¿© °á°ú °ªÀ» ÀúÀåÇÏ´Â ºÎºÐÀÌ´Ù.
    24¹ø ÁÙÀº mysql_num_fields()¸¦ ÀÌ¿ëÇÏ¿© ÇöÀç °á°ú °ª¿¡ ¸î °³ÀÇ Çʵ尡 ÀÖ´ÂÁö ¾Ë¾Æ ³»´Â ºÎºÐÀÌ´Ù.
    mysql_fetch_row()´Â ¹è¿­ ÇüÅ·Π°¢ Çʵ忡 Á¢±ÙÀ» ÇϹǷΠ¹è¿­ÀÇ À妽º¸¦ ¾Ë¾Æ³»¾ß Á¤È®È÷ µ¥ÀÌŸµéÀ» ¾ò¾î ¿Ã ¼ö ÀÖ´Ù.

    26-32¹ø ÁÙÀº ½ÇÁ¦·Î °¢ ROWµé·ÎºÎÅÍ µ¥ÀÌŸ¿¡ Á¢±ÙÇÏ´Â ºÎºÐÀÌ´Ù.
    mysql_fetch_row()¸¦ ÀÌ¿ëÇÏ¿© °¢°¢ÀÇ ROW¸¦ ¾ò¾î ¿Â´Ù(´õÀÌ»ó °¡Á®¿Ã ROW°¡ ¾øÀ¸¸é NULLÀ» ¸®ÅÏÇÑ´Ù.) ±× ÈÄ for¹®À» ÀÌ¿ëÇÏ¿© ROWÀÇ °¢°¢ Çʵ带 Ãâ·ÂÇÏ¿´´Ù.
    34-35¹ø ÁÙÀº res¿Í mysql¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÏ´Â ºÎºÐÀÌ´Ù. ÇÏÁö¸¸, query¿¡ µû¶ó¼­´Â ROW¸¦ ¸®ÅÏÇÏÁö ¾Ê´Â queryµµ ÀÖ´Ù(UPDATE³ª DELETEµî) ¸¸¾à À§ÀÇ ¿¹Á¦¿¡¼­ »ç¿ëÀÚ°¡ UPDATE µîÀ» ¼öÇàÇÏ¿´´Ù¸é, °ð¹Ù·Î Segmentation Fault°¡ ³ª¹ö¸°´Ù.
    À̶§´Â mysql_num_fields()¸¦ ÀÌ¿ëÇÏ¿©, ÇʵåÀÇ °³¼ö¸¦ Á¶»çÇÔÀ¸·Î½á ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. query°¡ ROW¸¦ ¸®ÅÏÇÏ¿´´Ù¸é, Çʵå´Â ÃÖ¼ÒÇÑ 0º¸´Ù Å©±â ¶§¹®ÀÌ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸ÀÚ(Âü°í·Î ¹ØÀÇ ¿¹Á¦´Â MySQL Manual 19Àå¿¡¼­ ¹ßÃéÇÑ ³»¿ëÀÌ´Ù.)

      MYSQL_RES*      result ;
      unsigned        int num_fields ;
      unsigned        int num_rows ;

      if(     mysql_query(&mysql, query_string) )
      {
      // mysql_query´Â ¼º°øÀûÀ¸·Î
      // ¼öÇàÇÒ °æ¿ì 0À» ¸®ÅÏÇϹǷÎ
      // ÀÌ ºÎºÐÀÌ ½ÇÇà µÈ´Ù¸é
      // ¿¡·¯°¡ ÀÖ´Ù´Â ÀǹÌÀÌ´Ù.
      // ÀûÀýÇÑ ¿¡·¯ Çڵ鸵À» ÇØÁÖ´Ù.
      }
      else // ¼º°øÀûÀ¸·Î query°¡ ¼öÇàµÇ¾ú´Ù.
      {
      result = mysql_store_result( &mysql ) ;
      if( result ) // ¸®ÅÏµÈ ROW°¡ ÀÖ´Ù !
      {
      num_fields = mysql_num_fields( result ) ;
      // rowÀÇ °ªÀ» ¾ò¾î¿À´Â ·çƾÀ» Áý¾î ³ÖÀ¸¸é µÈ´Ù.
      // ¸¶Áö¸·¿¡´Â mysql_free_result()¸¦ ÀÌ¿ëÇÏ¿©
      // ¸Þ¸ð¸®¸¦ ÇØÁ¦½ÃÅ°ÀÚ.
      }
      else // ¸®ÅÏµÈ ROW°¡ ¾ø´Ù. ROW¸¦ ¸®ÅÏÇÏÁö ¾Ê´Â query¸¦ ¼öÇàÇÏ¿´´ÂÁö // ȤÀº queryÀÇ ¼öÇà Áß¿¡ ¿¡·¯³ª ³µ´ÂÁö ¾Ë ¼ö ¾ø´Ù.
      {
      if( mysql_num_fields( &mysql ) == 0)
      {
      // ROW¸¦ ¸®ÅÏÇÏÁö ¾Ê´Â query¸¦ ¼öÇàÇÏ¿´´Ù.
      num_rows = mysql_affected_rows( &mysql ) ;
      // mysql_affected_rows()´Â DELETE µîÀÇ
      // query¿¡¼­ ¸î °³ÀÇ ROW°¡ ¿µÇâÀ» ¹Þ¾Ò´ÂÁö
      // ¸®ÅÏÇÏ´Â ÇÔ¼öÀÌ´Ù.

      }
      else // ¹«¾ð°¡ À߸øµÈ °ÍÀÌ ÀÖ´Ù.
      fprintf(¡°stderr,Error : %s¡¬n¡±,mysql_error( &mysql) ) ;
      // mysql_error()´Â °¡Àå ÃÖ±ÙÀÇ ¿¡·¯¸¦ ¸®ÅÏÇÏ´Â ÇÔ¼öÀÌ´Ù.
      }
      }
      À§ÀÇ ¿¹Á¦¸¦ ÀÌ¿ëÇÏ¿©, °á°ú¸¦ ¸®ÅÏÇÏ´Â query µçÁö(SELECT), ¾Æ´Ï¸é °á°ú¸¦ ¸®ÅÏÇÏÁö ¾Ê´Â query µçÁö(UPDATE, DELECT µî) ¾î¶°ÇÑ query¶óµµ ¼öÇàÀ» ¼º°øÀûÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.

    À̹ø¿¡´Â ROWÀÇ Çʵ忡 ´ëÇÑ Á¤º¸¸¦ ¾ò¾î ¿À´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æ º¸ÀÚ. MYSQL_FIELD¶ó´Â ±¸Á¶Ã¼°¡ ¾²À̴µ¥ MYSQL_FIELD¿¡´Â ´ÙÀ½°ú °°Àº ¸â¹öµéÀÌ ÀÖ´Ù.

    char* name  : ÇʵåÀÇ À̸§À» ³ªÅ¸³½´Ù.
    char* table : ÇöÀç ÇʵåÀÇ Å×À̺í À̸§À» ³ªÅ¸³½´Ù.
    char* def   : ÇʵåÀÇ ±âº»°ªÀ» ³ªÅ¸³½´Ù.

    MYSQL_FIELD* mysql_fetch_field( MYSQL_RES* result )
    : Çѹø¿¡ ÇϳªÀÇ MYSQL_FIELD¸¦ ¸®ÅÏÇÑ´Ù.
    MYSQL_FIELD* mysql_fetch_fields(MYSQL_RES* result )
    : ¹è¿­ÀÇ ÇüÅ·Π¸ðµç MYSQL_FIELD¸¦ ¸®ÅÏÇÑ´Ù.

      ¿¹1)
      MYSQL_FIELD *field ;
      while( (field = mysql_fetch_field(result) )
      printf(¡°field name %s¡¬n¡±, field -> name ) ;

      ¿¹2)
      unsigned int num_fields ;
      unsigned int i ;
      MYSQL_FIELD* fields ;
      num_fields = mysql_num_fields( result ) ;
      fields = mysql_fetch_fields( result ) ;
      for( i = 0 ; i < num_fields ; ++i)
      printf(¡°field name %s¡¬n¡±, fields[i].name) ;

    À§ÀÇ µÎ °³ÀÇ ¿¹´Â ¸ðµÎ µ¿ÀÏ¾È °á°ú¸¦ Ãâ·ÂÇÑ´Ù.

 

6. ¹®Á¦ ÇØ°á

    À̹ø¿¡´Â C API¸¦ »ç¿ëÇÑ ¼Ò½º Äڵ带 ÄÄÆÄÀÏÇÒ ¶§ ȤÀº, ½ÇÇà µµÁß ¸¸³ª´Â ¹®Á¦Á¡À» ÇØ°áÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

      1) ¡°con.c:2: mysql.h: ±×·± ÆÄÀÏÀ̳ª µð·ºÅ丮°¡ ¾øÀ½¡±
         ÀÌ °æ¿ì´Â mysql.hÀÇ °æ·Î¸¦ ãÀ» ¼ö ¾ø¾î¼­ ³ª´Â ¿¡·¯ÀÌ´Ù. ´Ù½Ã Çѹø mysql.h°¡
         ¾îµð¿¡ ÀÖ´ÂÁö È®ÀÎÀ» ÇÏ°í, -I¿É¼ÇÀ¸·Î ±× °æ·Î¸¦ ÁöÁ¤ÇØ ÁÖÀÚ. -I¿É¼Ç°ú °æ·Î´Â
         ºÙ¿© ½á¾ß ÇÑ´Ù.

      2) ¡°con.o(.text+0x11): undefined reference to `mysql_init¡¯¡±  À§¿Í °°ÀÌ
          ¡®undefined reference......¡¯ ¶ó°í ³ª¿À´Â ¿¡·¯´Â -lmysqlclient ¿É¼ÇÀ» ÁÖÁö ¾Ê¾Ò±â
          ¶§¹®ÀÌ´Ù.

      3) ¡°ld: cannot open -lmysqlclient: ±×·± ÆÄÀÏÀ̳ª µð·ºÅ丮°¡ ¾øÀ½¡± À§ÀÇ ¿¡·¯´Â
          -L¿É¼Ç µÚ¿¡ ºÙÀº ¶óÀ̺귯¸®ÀÇ °æ·Î°¡ À߸ø µÇ¾ú±â ¶§¹®ÀÌ´Ù.
            libmysqlclient.so ÆÄÀÏÀÇ °æ·Î¸¦ ã¾Æ¼­ ±× °æ·Î·Î ÁöÁ¤À» ÇØ ÁÖÀÚ.
          -I ¿É¼Ç°ú ¸¶Âù°¡Áö·Î -L°ú °æ·Î´Â ºÙ¿© ½á¾ß ÇÑ´Ù. À§ÀÇ ¿¡·¯µéÀº ÄÄÆÄÀϽÿ¡
            ¿É¼ÇÀÌ À߸øµÇ¾úÀ» °æ¿ì ³ª¿À´Â ¿¡·¯ ¸Þ½ÃÁöÀÌ´Ù.
            °è¼ÓÇؼ­ ÇÁ·Î±×·¥ÀÇ ½ÇÇà Áß¿¡ ³ª¿À´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ º¸ÀÚ.

      4) ¡°Can¡¯t connect to local MySQL server (2)¡±
          À§ÀÇ ¿¡·¯´Â MySQLÀÇ ¼­¹ö¿¡ ¿¬°áÀ» ÇÒ ¼ö ¾ø´Ù´Â ¸Þ½ÃÁö·Î¼­, MySQL ¼­¹öÀÇ
          µ¥¸óÀÌ ½ÇÇà ÁßÀÌÁö ¾ÊÀ» ¶§ ³ª¿À´Â ¸Þ½ÃÁöÀÌ´Ù.
          safe_mysqld ¸í·É µîÀ» ÀÌ¿ëÇÏ¿© µ¥¸óÀ» ½ÇÇà½ÃÄÑ ÁÖÀÚ.

      5) ¡°Access denied for user: ¡®rot@localhost¡¯ (Using password: YES)¡±
          Á¢±ÙÀÌ ±ÝÁöµÇ¾ú´Ù´Â ¸Þ½ÃÁö·Î¼­ »ç¿ëÀÚ ¾ÆÀ̵𸦠À߸ø ÀÔ·ÂÇÏ¿´ °Å³ª, È¤Àº ¾ÏÈ£¸¦
          À߸ø ÀÔ·ÂÇÏ¿´À» ¶§ ³ª¿À´Â ¸Þ½ÃÁöÀÌ´Ù.
          MySQLÀÇ »ç¿ëÀÚ´Â ¸ðµÎ mysql databaseÀÇ user Å×ÀÌºí¿¡ ÀÖÀ¸¹Ç·Î, Âü°í¸¦ ÇÏ¿©
          Àûµµ·Ï ÇÏÀÚ.

      6) ¡°error in loading shared libraries libmysqlclient.so.6:
          cannot open shared object file: No such file or directory¡±
          MySQLÀÇ ¶óÀ̺귯¸®¸¦ ¿­Áö ¸øÇÑ´Ù´Â ¸Þ½ÃÁöÀÌ´Ù. ÄÄÆÄÀÏ ÇÒ ¶§ MySQLÀÇ µ¿Àû
          ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Àµ¥, µ¿Àû ¶óÀ̺귯¸®À̹ǷΠ½ÇÇà½Ã¿¡µµ ¶óÀ̺귯¸®°¡
          ÇÊ¿äÇÏ°Ô µÈ´Ù.
          libmysqlclient.so°¡ /usr/lib ȤÀº /usr/lib/mysql µð·ºÅ͸®¿¡ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì¿¡
          ¹ß»ýÇÏ´Â ¹®Á¦ÀÌ´Ù. °¡Àå °£´ÜÇÑ ÇØ°á¹ýÀ¸·Î´Â ¸ðµç MySQL ¶óÀ̺귯¸®¸¦ /usr/lib/
          ³ª /usr/local/lib ¹ØÀ¸·Î º¹»çÇÏ´Â °ÍÀε¥ º°·Î ÃßõÇÏ´Â ¹æ¹ýÀº ¾Æ´Ï´Ù.
          µÎ °¡Áö ¹æ¹ýÀÌ Àִµ¥,
          ¸ÕÀú ½Ã½ºÅÛÀÇ ¿î¿µÀÚ¶ó¸é, /etc/ld.so.conf ÆÄÀÏ¿¡libmysqlclient.so°¡ÀÖ´Â °æ·Î¸¦     Àû¾î ÁØ ÈÄ¿¡ ldconfig ¶ó´Â ¸í·ÉÀ» ÇÁ·ÒÇÁÆ®¿¡¼­ ½ÇÇàÇÏ¿© ÁÖ¸é µÈ´Ù. ÀÌ·¯ÇÑ ±ÇÇÑÀÌ
          ¾ø´Â ÀÏ¹Ý »ç¿ëÀÚ¶ó¸é, ÀÚ½ÅÀÇ ½©ÀÇ È¯°æ º¯¼ö¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù.
          °¢ÀÚÀÇ ½©ÀÌ ¸Â°Ô, LD_LIBRARY_PATH¸¦ libmysqlclient.so°¡ ÀÖ´Â µð·ºÅ͸®·Î
          ÁöÁ¤À» ÇØÁÖÀÚ.
          C ½© »ç¿ëÀÚ´Â  setenv LD_LIBRARY_PATH  °æ·Î¸í º» ½© »ç¿ëÀÚ´Â
          export LD_LIBRARY_PATH  °æ·Î¸í ÀÌ·¸°Ô ÇØÁÖ¸é µÈ´Ù.
          º¸Åë À§ÀÇ 6°³ÀÇ ¿¡·¯°¡ °¡Àå ¸¹ÀÌ ¹ß»ýÇÑ´Ù. Ȥ½Ã, ÇØ°áÇÏÁö ¸øÇÒ ¿¡·¯°¡ ÀÖ´Ù¸é
          ÇÊÀÚ¿¡°Ô ¸ÞÀÏÀ» º¸³»¸é Ä£ÀýÈ÷ ´äº¯ÇØ ÁÖ°Ú´Ù.

 

7. Quick Reference

    À§¿¡¼­ ¼³¸íÇÑ API¸¸À» °¡Áö°íµµ ¼­¹ö¿¡ ¿¬°áÇÏ¿©, Query¸¦ ¼öÇàÇÏ°í ±× °á°ú¸¦ È®ÀÎ ÇÒ ¼ö ÀÖ´Ù. À̹ø¿¡´Â C APIÀÇ Áß¿äÇÑ ÇÔ¼öµéÀ» ¸ð¾Æ¼­, ÇÔ¼öÀÇ ÇÁ·ÎÅäŸÀÔ°ú ÇÔ¼öÀÇ ±â´Éµé¿¡ ´ëÇؼ­ °£´ÜÈ÷ ¾Ë¾Æµµ·Ï ÇÏÀÚ. °³ÀÎÀûÀ¸·Î ±×´ÙÁö Áß¿äÇÏÁö ¾Ê´Ù°í »ý°¢µÇ´Â ÇÔ¼öµéÀº Á¦¿Ü½ÃÄ×À¸¹Ç·Î ¸ðµç C API¸¦ º¸°í ½ÍÀº µ¶ÀÚµéÀº MySQL Reference ManualÀÇ 19ÀåÀ» º¸±â ¹Ù¶õ´Ù. Âü°í·Î ÇÊÀÚ°¡ ÂüÁ¶ÇÑ ¸Þ´º¾óÀº MySQL 3.22.21¿ë ¸Þ´º¾óÀ̾ú´Ù.

      1) my_ulonglong mysql_affected_rows(MYSQL* mysql) INSERT, UPDATE, DELETE
          µîÀÇ query·Î ¿µÇâÀ» ¹ÞÀº ROWÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù.

      2) void mysql_close(MYSQL* mysql) ¼­¹ö¿ÍÀÇ ¿¬°áÀ» Á¾·áÇÑ´Ù.

      3) void mysql_data_seek(MYSQL_RES* result, unsigned int offset) result¿¡¼­ ÀÓÀÇÀÇ
          ROW¿¡ Á¢±ÙÀ» Çϵµ·Ï ÇÏ´Â ÇÔ¼öÀÌ´Ù.
          offsetÀÌ rowÀÇ ¹øÈ£¸¦ ³ªÅ¸³½´Ù. 0À̸é óÀ½ ROW,  mysql_num_rows( result ) - 1
          Àº ¸¶Áö¸· row¸¦ ³ªÅ¸³½´Ù.

      4) unsigned int mysql_errno(MYSQL* mysql) °¡Àå ÃÖ±Ù¿¡ mysql¿¡ ÀϾ ¿¡·¯ÀÇ
          ¹øÈ£¸¦ ¸®ÅÏÇÑ´Ù.

      5) char* mysql_error(MYSQL* mysql) °¡Àå ÃÖ±Ù¿¡ ÀϾ ¿¡·¯ ¸Þ½ÃÁö¸¦ ¸®ÅÏÇÑ´Ù.

      6) MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)Çѹø È£ÃâÇÒ ¶§¸¶´Ù ÇϳªÀÇ
          Çʵ忡 ´ëÇÑ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù.

      7) MYSQL_FIELDS*mysql_fetch_fields(MYSQL_RES* result) ¹è¿­Çü´ë·Î resultÀÇ
          Çʵ忡 ´ëÇÑ Á¤º¸¸¦ ÇѲ¨¹ø¿¡ ¸®ÅÏÇÑ´Ù.

      8) MYSQL_FIELD_OFFSETmysql_field_seek(MYSQL* mysql,     MYSQL_FIELD_OFFSET offset)ÀÓÀÇÀÇ Çʵ忡 Á¢±ÙÀ» Çϵµ·Ï ÇÑ´Ù.

      9) MYSQL_FIELD_OFFSETmysql_field_tell(MYSQL_RES* result)ÇöÀç ÇʵåÀÇ offsetÀ»
          ¸®ÅÏÇÑ´Ù.

      10) void mysql_free_result(MYSQL_RES* result) result¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.

      11) MYSQL* mysql_init(MYSQL* mysql) mysql °´Ã¼¸¦ ÃʱâÈ­ÇÑ´Ù.
            ÀÎÀÚ°¡ NULLÀÌ¸é »õ·Î¿î MYSQL °´Ã¼¸¦ »ý¼ºÇÏ°í, ÃʱâÈ­ÇÏ¿© ¸®ÅÏÇÑ´Ù.

      12) MYSQL_RES* mysql_list_dbs(MYSQL* mysql, const char* wild)
            ÇöÀç ¼­¹ö¿¡ ÀÖ´Â µ¥ÀÌŸº£À̽ºÀÇ ¸ñ·ÏÀ» ¸®ÅÏÇÑ´Ù. wild´Â MySQL¿¡¼­ »ç¿ëÇÒ ¼ö
            ÀÖ´Â Á¤±Ô½ÄÀ» ³ªÅ¸³½´Ù.     
           result = mysql_list_dbs( &mysql,¡±%¡± )´Â ¸ðµç µ¥ÀÌÅͺ£À̽º¸¦ ¸®ÅÏÇÏ´Â ¿¹ÀÌ´Ù.      (%´Â ¡®¸ðµç¡¯À» ³ªÅ¸³½´Ù)

      13) MYSQL_RES* mysql_list_tables(MYSQL* mysql, const char* wild)
            ÇöÀç µ¥ÀÌŸº£À̽º¿¡ ÀÖ´Â Å×À̺íµéÀÇ ¸ñ·ÏÀ» ¸®ÅÏÇÑ´Ù.

      14) unsigned int mysql_num_fields(MYSQL_RES*result) ȤÀº
            unsigned int mysql_num_fields(MYSQL* mysql)ÇʵåÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù.

      15) my_ulonglong mysql_num_rows(MYSQL_RES* result) result¿¡ ÃÑ ¸î °³ÀÇ ROW°¡
            ÀÖ´ÂÁö ¸®ÅÏÇÑ´Ù. query ¼öÇà ÈÄ mysql_store_result()¸¦ È£ÃâÇÏ¿´À» °æ¿ì¿¡¸¸ »ç¿ë
            ÇÒ ¼ö ÀÖ°í, mysql_use_result()´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.

      16) int mysql_ping(MYSQL* mysql) ¼­¹ö¿¡ ¿¬°á ÁßÀÎÁö¸¦ ¸®ÅÏÇÑ´Ù. ¿¬°áÀÌ ²÷¾î Á³À»
            °æ¿ì, ´Ù½Ã ¿¬°áÀ» ½ÃµµÇÑ´Ù. ¼­¹ö¿Í ¿¬°áÀ» ÇÑ ÈÄ, ¿À·§µ¿¾È °¡¸¸È÷ ÀÖÀ¸¸é ¼­¹ö°¡
            ¿¬°áÀ» ²÷¾î¹ö¸®´Âµ¥, ÀÌ·± °æ¿ì¿¡ »ç¿ëÇÑ´Ù.

      17) int mysql_query(MYSQL* mysql, const char* query) query°¡ Æ÷ÀÎÆ® ÇÏ´Â Äõ¸®¸¦
            ¼öÇàÇÑ´Ù. queryÀÇ ³¡Àº NULL ¹®ÀÚÀÌ´Ù. ¼º°øÀûÀ¸·Î query¸¦ ¼öÇàÇÏ¿´À¸¸é 0À»
            ¸®ÅÏÇÑ´Ù.

      18) MYSQL* mysql_real_connect(MYSQL* mysql, const char* host,
            const char* user, const char* passwd, const char* db, uint port,
            const char* unix_socket, unit client_flag ) host¿ÍÀÇ ¿¬°áÀ» ½ÃµµÇÑ´Ù.
            ÀÎÀÚº°·Î ÀÚ¼¼ÇÑ ¼³¸íÀº À­ ºÎºÐ¿¡ µÇ¾î ÀÖ´Ù.

      19) int mysql_real_query(MYSQL* mysql, const char* query,
            unsigned int length)mysql_query()ó·³ query¸¦ ¼öÇàÇϳª, queryÀÇ ³¡ÀÌ legnthÀÎ
            °ÍÀÌ ´Ù¸£´Ù.

      20) MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES* result)ÇöÀç ROWÀÇ offsetÀ»
            ¸®ÅÏÇÑ´Ù.

      21) int mysql_select_db(MYSQL* mysql, const char* db)»ç¿ëÇÏ°íÀÚ ÇÏ´Â database
            ¸¦ º¯°æÇÑ´Ù.
            mysql_query()¸¦ ÀÌ¿ëÇÏ¿© ¡°use dbÀ̸§¡±ÀÇ query¸¦  ¼öÇàÇصµ °°Àº °á°ú¸¦
            ¾ò´Â´Ù.

      22) int mysql_shutdown(MYSQL* mysql) ¼­¹ö¸¦ Á¾·á½ÃŲ´Ù.
           ÇöÀç »ç¿ëÀÚ¿¡°Ô shutdown ±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÑ´Ù.

      23) MYSQL_RES* mysql_store_result(MYSQL* mysql) queryÀÇ ¼öÇà°á°ú¸¦ ¼­¹ö·Î
           ºÎÅÍ ÇÑ ¹ø¿¡ ¸ðµÎ ¹Þ¾Æ ¿Â´Ù.

      24) MYSQL_RES* mysql_use_result(MYSQL* mysql) queryÀÇ ¼öÇà°á°ú¸¦ ¼­¹ö·ÎºÎÅÍ
            ÇÑ °³ÀÇ ROW ¾¿ ¹Þ¾Æ ¿Â´Ù.




¡ã top

 homeÀ¸·Î...