|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
mysql ÀÌ À¥¿¡¼ °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â RDBMS ¶ó´Â µ¥´Â ÀǽÉÀÇ ¿©Áö°¡ ¾ø´Â °Í °°´Ù.
ÁÖ·Î Apache ¿Í PHP ¿Í ¿¬µ¿Çؼ »ç¿ëµÇ¾î Áö´Âµ¥
(ÀÌ 3°¡Áö Á¶ÇÕÀ» APM À̶ó°í ÇÑ´Ù), °£´ÜÇÑ Ä«¿îÅÍ, ¹æ¸í·Ï¿¡¼ ºÎÅÍ,
Á»´õ º¹ÀâÇÑ ¼îÇθô, ½ºÄÉÁì°ü¸®, °Ô½ÃÆÇ, À¥¸ÞÀÏ µî °ÅÀÇ ¾²ÀÌÁö ¾Ê´Â °÷ÀÌ
¾øÀ» Á¤µµÀÌ´Ù.
Mysql ÀÌ PHP ¿Í ÇÔ²² À¥¿¡¼ »ç¿ëÇÏ´Â°Ô °¡Àå ÀϹÝÀûÀÎ ¿ëµµÀ̱ä ÇÏÁö¸¸,
¸¹Àº °æ¿ì ½Ã½ºÅÛ·¹º§¿¡¼ Á÷Á¢ ´Ù·ç¾î¾ß Çϴ°æ¿ìµµ »ý±ä´Ù. ÀÌ·¯ÇÑ °æ¿ì¸¦
À§Çؼ mysql Àº Perl, Python, C, C++ µî ´Ù¾çÇÑ API¸¦ Á¦°øÇϴµ¥, ¿ì¼±
C¸¦ ÀÌ¿ëÇÑ Á¢±Ù¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. (³ªÁß¿¡ ½Ã°£ÀÌ Çã¶ôÇϸé
C++ À» ÀÌ¿ëÇÑ mysql Á¢±Ù¿¡ ´ëÇØ¼µµ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù)
¼³¸í¿¡ µé¾î°¨¿¡ ¾Õ¼ À̹®´Â ¿©·¯ºÐÀÌ SQL°ú RDBMS¿¡ ´ëÇÑ °³³ä°ú,
mysql ÀÇ ¼³Ä¡ ¹× ¿î¿µ¿¡ °ü·ÃµÈ ±âº» »çÇ×Àº ¾Ë°í ÀÖ´Ù´Â °¡Á¤ÇÏ¿¡ ¾²¿©Á³À¸¸ç,
¼³¸íÀ» À§ÇØ ¾²ÀÎ ÄÚµåµéÀº ±â´É°ú È¿À²¼º¿¡ ¿°µÎ¸¦ µÐ Äڵ尡 ¾Æ´Ñ ¼ø¼ö ½ºÅ͵ð¿ë
(µ¹¾Æ¸¸°¡´Â)ÄÚµå ÀÓÀ» °øÁöÇÕ´Ï´Ù. mysql°ú SQL ¿¡ ´ëÇÑ »ó¼¼ÇÑ ³»¿ëÀº
°ü·Ã ¼ÀûÀ̳ª database.sarang.netÀ» Âü°íÇϼ¼¿ä.
Äڵ带 Å×½ºÆ® Çϱâ Àü¿¡ ¿ì¼± ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ mysql client °¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö
È®ÀÎÀ» ÇØº¸¹Ù¶õ´Ù. ÇÊÀÚÀÇ °æ¿ì mysql-3.23.46 ÀÌ ¼³Ä¡µÇ¾î ÀÖÀ¸¸ç,
ÀÎŬ·çµå ÆÄÀÏÀº /usr/local/include/mysql ¿¡ ¶óÀ̺귯¸®
ÆÄÀÏÀº /usr/local/lib/mysql ¼³Ä¡µÇ¾î ÀÖ´Ù. ¿äÁò ¿Ø¸¸ÇÑ Linux ¹èÆ÷ÆÇÀº
±âº»À¸·Î mysql ÀÌ ¼³Ä¡µÇ¾î ÀÖÀ¸´Ï, À§ÀÇ ÀÎŬ·çµå¿Í, ¶óÀ̺귯¸® °æ·Î°¡
¾îµð¿¡ ÀÖ´ÂÁö È®Àθ¸ ÇÏ¸é µÉ°ÍÀÌ´Ù.
±×·³ Å×½ºÆ®¸¦ À§ÇÑ Å×À̺íÀ» ¸¸µé°í Å×ÀÌºí¿¡ °£´ÜÇÑ ³»¿ëÀ» ÀÔ·ÂÇØº¸ÀÚ,
Å×À̺íÀÌ À§Ä¡ÇÒ DB ´Â test À̰í Å×À̺íÀÇ À̸§Àº address ÀÌ´Ù.
CREATE TABLE address (
name varchar(25) default NULL,
address text,
tel varchar(25) default NULL
);
|
ÀÌ Å×À̺íÀº °£´ÜÇÑ ÁÖ¼Ò·ÏÀε¥, "À̸§", "ÁÖ¼Ò", "ÀüȹøÈ£" ¸¦
ÀúÀåÇϱâ À§Çؼ »ç¿ëµÈ´Ù.
ÀÌÁ¦ Å×½ºÆ®¸¦ À§Çؼ 2°³ Á¤µµÀÇ data ¸¦ ÀÔ·ÂÇϵµ·Ï ÇÏÀÚ.
INSERT INTO address VALUES ('È«±æµ¿','°æ±âµµ ¿¬Ãµ ¿¬Ãµ¾ÆÆÄÆ®','02-500-5000');
INSERT INTO address VALUES ('¾Æ¹«°³','±¤ÁÖ±¤¿ª½Ã ¼±¸ Çö´ë ¾ÆÆÄÆ®','015-000-1111');
|
¿ì¸®°¡ ¸¸µé ÇÁ·Î±×·¥À» Å×½ºÆ® Çϱâ À§ÇÑ È¯°æÀÌ °®Ãß¾î Á³´Ù¸é, ÀÌÁ¦
º»°ÝÀûÀ¸·Î Äڵ带 ÀÛ¼ºÇØ º¸µµ·Ï ÇϰڴÙ.
¿¹Á¦ : mysql_test.c
#include <mysql.h>
#include <string.h>
#include <stdio.h>
#define DB_HOST "127.0.0.1"
#define DB_USER "root"
#define DB_PASS "gkwlak"
#define DB_NAME "test"
#define CHOP(x) x[strlen(x) - 1] = ' '
int main(void)
{
MYSQL *connection=NULL, conn;
MYSQL_RES *sql_result;
MYSQL_ROW sql_row;
int query_stat;
char name[12];
char address[80];
char tel[12];
char query[255];
mysql_init(&conn);
connection = mysql_real_connect(&conn, DB_HOST,
DB_USER, DB_PASS,
DB_NAME, 3306,
(char *)NULL, 0);
if (connection == NULL)
{
fprintf(stderr, "Mysql connection error : %s", mysql_error(&conn));
return 1;
}
query_stat = mysql_query(connection, "select * from address");
if (query_stat != 0)
{
fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
return 1;
}
sql_result = mysql_store_result(connection);
printf("%+11s %-30s %-10s", "À̸§", "ÁÖ¼Ò", "ÀüȹøÈ£");
while ( (sql_row = mysql_fetch_row(sql_result)) != NULL )
{
printf("%+11s %-30s %-10s", sql_row[0], sql_row[1], sql_row[2]);
}
mysql_free_result(sql_result);
printf("À̸§ :");
fgets(name, 12, stdin);
CHOP(name);
printf("ÁÖ¼Ò :");
fgets(address, 80, stdin);
CHOP(address);
printf("ÀüÈ :");
fgets(tel, 12, stdin);
CHOP(tel);
sprintf(query, "insert into address values "
"('%s', '%s', '%s')",
name, address, tel);
query_stat = mysql_query(connection, query);
if (query_stat != 0)
{
fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
return 1;
}
mysql_close(connection);
}
|
mysql Àº mysql ¿¬°á, query °á°ú ¹Þ¾Æ¿À±â, °á°ú¹°ÀÇ Row °ªÀ» ÀúÀåµîÀ» À§ÇÑ
¸î°³ÀÇ ±¸Á¶Ã¼°¡ Á¸ÀçÇÑ´Ù.
| MYSQL |
µ¥ÀÌŸ º£À̽º¿¡ ¿¬°áÇßÀ»¶§, ÀÌ ¿¬°áÀ» ´Ù·ç±â À§ÇØ »ç¿ëµÇ´Â ±¸Á¶Ã¼
ÀÌ´Ù |
| MYSQL_RES |
(SELECT, SHOW, DESCRIBE, EXPLAIN)µîÀÇ Äõ¸®¸¦ ³»·ÈÀ»¶§ ±× °á°ú¸¦ ´Ù·ç±â
À§ÇØ »ç¿ëµÇ´Â ±¸Á¶Ã¼ÀÌ´Ù.
|
| MYSQL_ROW |
À̰ÍÀº µ¥ÀÌŸÀÇ ÇϳªÀÇ row °ªÀ» °¡¸®Å²´Ù. ¸¸¾à row °ªÀÌ ¾ø´Ù¸é null À»
°¡¸£Å°°Ô µÈ´Ù.
|
| MYSQL_FIELD |
ÀÌ ±¸Á¶Ã¼´Â °¢ ÇʵåÀÇ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù. ¿©±â¿¡´Â ÇʵåÀÇ À̸§,
ŸÀÔ, Å©±â µîÀÇ Á¤º¸¸¦ °¡Áö°Ô µÈ´Ù. mysql ¿¡¼ DESC Äõ¸®¸¦ ³»·ÈÀ»¶§ÀÇ
Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù°í º¸¸éµÈ´Ù.
|
| MYSQL_FIELD_OFFSET |
mysql ÇÊµå ¸®½ºÆ®ÀÇ À§Ä¡¸¦ °¡Áø´Ù.
|
ÀÌ ÇÁ·Î±×·¥ÀÌ ÇÏ´Â ÀÏÀº ÃÖÃÊ mysql DB¿¡ ¿¬°áÀ» ÇÑ´ÙÀ½¿¡ query ¸¦ ÅëÇÏ¿©
address ÀÇ ³»¿ëÀ» °¡Á®¿Í¼ ȸ鿡 Ãâ·Â½ÃÄÑÁÖ°í. ´ÙÀ½¿¡ »ç¿ëÀÚ ÀÔ·ÂÀ»
¹Þ¾Æ¼ DB¿¡ ÀúÀåÇϴµ¥±îÁö´Ù. ¾Õ¿¡¼ ¸»ÇßµíÀÌ, À¯Àú ÀÎÅÍÆäÀ̽º¶óµç°¡ ÇÏ´Â
±â´ÉÀûÀÎ Ãø¸éÀº ÀüÇô ½Å°æ¾²Áö ¾Ê¾Ò´Ù. ÀÌ·¯ÇÑ Ãø¸é¿¡ ´ëÇØ¼´Â ³ªÁß¿¡ curse
°è¿À» ´Ù·ç¸é¼ ¿¬±¸ÇÏ°Ô µÉ°ÍÀÌ´Ù.
±×·³ ÀÌÁ¦ºÎÅÍ ¼Ò½º¸¦ ºÐ¼®ÇØ º¸±â·Î ÇϰڴÙ.
mysql_init() ´Â mysql DB¿¡ ¿¬°áÇϱâ Àü¿¡ °¡Àå ¸ÕÀú ½ÇÇàµÇ¸ç, mysql ¿¬°á
Áö½ÃÀÚ¸¦ ÃʱâÈ ÇÏ´Â ÀÏÀ» ÇÑ´Ù. mysql_init()¸¦ ÀÌ¿ëÇØ¼ mysql ¿¬°áÀ» ÃʱâÈ
ÇÏ°í ³ª¼ mysql_real_connect ¸¦ ÀÌ¿ëÇØ¼ mysql ¼¹ö¿¡ ½ÇÁ¦·Î Á¢±ÙÇÏ°Ô µÈ´Ù.
¾Æ±Ô¸ÕÆ®·Î´Â ¿ì¸®°¡ Å͹̳ο¡¼ mysql À»ÀÌ¿ëÇØ¼ Á¢±ÙÇϴµ¥ ÇÊ¿äÇÑ,
È£½ºÆ®À̸§(DB_HOST), À¯Àú°èÁ¤(DB_USER), °èÁ¤¿¡ ´ëÇÑ ÆÐ½º¿öµå(DB_PASS), Á¢±Ù
ÇϰíÀÚ ÇÏ´Â DBÀ̸§(DB_NAME), Æ÷Æ®¹øÈ£(DB_PORT) µîÀÌ µé¾î°£´Ù.
¿¬°á¿¡ ¼º°øÇϸé connection ÇÚµé °ªÀ» ³Ñ°ÜÁÖ°í ½ÇÆÐÇÏ°Ô µÇ¸é NULL °ªÀ» ³Ñ°Ü
ÁÖ°Ô µÈ´Ù. ¾î¶² ÀÌÀ¯·Î ½ÇÆÐÇß´ÂÁö ÀÚ¼¼ÇÑ ³»¿ëÀ» ¾Ë¾Æº¸°í ½Í´Ù¸é mysql_error()
À» »ç¿ëÇ϶ó.
mysql ¼¹ö·ÎÀÇ ¿¬°á±îÁö ¼º°øÀûÀ¸·Î ¸¶ÃÆ´Ù¸é, ÀÌÁ¦ query ¸¦ ÀÌ¿ëÇØ¼ º»°ÝÀûÀÎ
ÀÛ¾÷¿¡ µ¹ÀÔÇÑ´Ù. mysql_query ¸¦ ÅëÇØ¼ ÇÊ¿äÇÑ query¸¦ ½ÇÇà ½Ã۸éµÈ´Ù.
¿ì¸®°¡ º¸Åë »ç¿ëÇÏ´Â Äõ¸®´Â "SELECT, SHOW, DESC, EXPLAIN" °ú °°ÀÌ Äõ¸®¿¡
±× °á°ú °ª(row)À» ¿äûÇÏ´Â °Í°ú, "INSERT, UPDATE, DELETE" ¿Í °°ÀÌ ±× °á°ú °ªÀÌ
ÇÊ¿ä ¾ø´Â ¸í·É¾î·Î ³ª´©¾î º¼¼ö ÀÖ´Ù. row °ªÀ» ¿äûÇÏÁö ¾Ê´Â Äõ¸®¶ó¸é
Çʿ䰡 ¾ø°ÚÁö¸¸ row °ªÀ» ¿äûÇÏ´Â Äõ¸®¶ó¸é Äõ¸®ÀÇ °á°ú°ªÀ» ÀúÀåÇØ¾ß ÇÒ°ÍÀÌ´Ù.
ÀÌ·²¶§ mysql_store_result()¸¦ ÀÌ¿ëÇØ¼ Äõ¸®ÀÇ °á°ú°ªÀ» µÇµ¹·Á ¹ÞÀ»¼ö ÀÖ´Ù.
mysql_store_result()¸¦ ÅëÇØ¼ Äõ¸®ÀÇ °á°ú°ªÀ» µÇµ¹·Á ¹Þ¾Ò´Ù¸é,
mysql_fetch_row()¸¦ ÀÌ¿ëÇØ¼ row ´ÜÀ§·Î °á°ú °ªÀ» °¡Á®¿Ã¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â
Äõ¸®ÀÇ °á°ú°ª¿¡¼ ´ÙÀ½ÀÇ row °ªÀ» °¡Á®¿À¸ç, ´õÀÌ»ó °¡Á®¿Ã row °ªÀÌ ¾ø´Ù¸é
NULL À» µ¹·ÁÁØ´Ù.
°¡Á®¿Â row ¿¡¼ÀÇ °¢ÇÊµå °ªÀº row[0] ¿¡¼ row[mysql_num_fields(result)-1] ¿¡
ÀúÀåµÇ¾î ÀÖÀ¸ ¹Ç·Î, ÇØ´ç row ÀÇ field °ªÀ» ½±°Ô °¡Á®¿Ã¼ö ÀÖ´Ù.
mysql_store_result() À» ÅëÇØ¼ °¡Á®¿Â Äõ¸®°á°ú°ªÀ» ´õÀÌ»ó »ç¿ëÇÒ Çʿ䰡 ¾ø´Ù¸é,
¸Þ¸ð¸®¸¦ µÇµ¹·ÁÁà¾ß Çϴµ¥, mysql_free_result ¸¦ ÅëÇØ¼ µÇµ¹·ÁÁÖ¸é µÈ´Ù.
mysql_store_result()¸¦ »ç¿ëÇß´Ù¸é ¹Ýµå½Ã mysql_free_result()¸¦ »ç¿ëÇØ¼ ¸Þ¸ð¸®¸¦
ÇØÁ¦ ½ÃÄÑÁà¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¸Þ¸ð¸® ´©¼ö°¡ ¹ß»ýÇÏ°Ô µÈ´Ù.
mysql_free_result()±îÁö ½ÃÄÑÁÖ°í ³ª¼, fgets() ÇÔ¼ö¸¦ ÅëÇÏ¿©¼ "À̸§",
"ÁÖ¼Ò", "ÀüȹøÈ£" ¸¦ ÀԷ¹޾Ƽ, ÀԷ¹ÞÀº Á¤º¸·Î Äõ¸®¸¦ ¸¸µé°í À̸¦
mysql_query()¸¦ ÀÌ¿ëÇØ¼ DB ¿¡ ÀûÀçÇÏ´Â °ÍÀ» ¸¶Áö¸·À¸·Î ¿¹Á¦ÀÇ ¼³¸íÀÌ ³¡³µ´Ù.
´©°¡ º¸´õ¶óµµ ÀÌÇØÇϱ⠽¬¿î ÄÚµåÀϰÍÀÌ´Ù. ÀÌÁ¦ ÀÌ Äڵ带 ÄÄÆÄÀÏ ÇØ¼ ½ÇÇà½ÃÄÑ
º¸´Â Àϸ¸ ³²¾Ò´Ù.
gcc -o mysql_test mysql_test.c -I/usr/local/include/mysql
-L/usr/local/lib/mysql -lmysqlclient
|
-I °ú -L ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ ÄÄÆÄÀÏ ½Ã۴µ¥ ÇÊ¿äÇÑ ÀÎŬ·çµå ÆÄÀϰú ¶óÀ̺귯¸®
ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮¸¦ ¸í½ÃÇØÁÖ¸é µÈ´Ù. À§ÀÇ µð·ºÅ丮´Â ÇÊÀÚ°¡ °¡Áø
½Ã½ºÅÛÀÇ °æ¿ìÀ̰í, À§ÀÇ µð·ºÅ丮´Â ½Ã½ºÅÛ¿¡ µû¶ó¼ ´Ù¸¦¼ö ÀÖÀ¸´Ï
ÀÚ½ÅÀÇ ½Ã½ºÅÛ ¼³Á¤¿¡ ¸Âµµ·Ï ¿É¼ÇÀ» ÁÖ°í ÄÄÆÄÀÏ Çϱ⠹ٶõ´Ù.
ÀÌ»ó °£´ÜÇÏ°Ô mysql API ¸¦ »ìÆìº¸¾Ò´Ù. À§ÀÇ ¿¹Á¦´Â ¸¹Àº mysql
API ÁßÀÇ ±ØÈ÷ ÀϺκи¸À» ½á¼ ²ÀÇÊ¿äÇÑ ±â´É¸¸ ±¸ÇöÇѰÍÀÌ´Ù.
´õ ÀÚ¼¼ÇÑ Á¤º¸´Â www.mysql.org »çÀÌÆ®¸¦ Âü°íÇϱ⠹ٶõ´Ù.
Cache Error
|
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.
|
|
|