1. Çü½Ä
Çü½Ä1) result= mysql_fetch_field(myres_ptr)
Çü½Ä2) result= mysql_fetch_field(myres_ptr, field_no)
2. ±â´É: ÀÎÀÚ myres_ptrÀÇ Ç׸ñ¿¡ ´ëÇÑ Á¤º¸(À̸§, ¼Ò¼Ó Å×À̺í, ÃʱⰪ, ÀÚ·áÇü,
Å©±â, ÃÖ´ë Å©±â, Ç÷¡±×, ¼Ò¼ö ¾Æ·¡ ÀÚ¸®¼ö)¸¦ °´Ã¼·Î ¾ò´Â´Ù.
3. ¼³¸í
(1) ÀÌ ÇÔ¼ö´Â MySQL¿¡¼ Áö¿øÇÏ´Â ÇÔ¼öÀ̸ç ÇÔ¼ö¸íÀº MySQLÀÇ C API¿Í µ¿ÀÏÇÏ´Ù.
(2) ÀÎÀÚ myres_ptrÀº MySQL result Æ÷ÀÎÅÍÀ̸ç mysql_store_result()ÇÔ¼ö³ª ±âŸ
°á°ú¸¦ ÀúÀåÇÏ´Â ÇÔ¼ö¿¡ ÀÇÇÏ¿© ¾òÀº °ªÀÌ°í MySQL result Æ÷ÀÎÅÍ°¡ ¾Æ´Ï¸é
¿¡·¯ 󸮵Ǹç, ÀÌ¹Ì ÇØÁ¦µÈ MySQL result Æ÷ÀÎÅÍÀÏ ¶§¿¡´Â °æ°í ¸Þ½ÃÁö¸¦
Ãâ·ÂÇÏ°í result¿¡ -1 ÀÇ °ªÀ» µÇµ¹¸°´Ù.
(3) Çü½Ä1)Àº Çʵå Ä¿¼ À§Ä¡, Çü½Ä2)´Â field_no À§Ä¡ÀÇ Ç׸ñ Á¤º¸¸¦ ¾ò´Â´Ù.
(4) Çü½Ä2)ÀÇ ÀÎÀÚ field_no´Â Ç׸ñ¿¡ ´ëÇÑ ¼ø¹ø( 0 ºÎÅÍ Ç׸ñ°³¼ö - 1 )À̸ç ÀÌ
°ªÀÌ ¹®ÀÚ¿ÀÌ°í ¼öÄ¡·Î º¯È¯µÉ ¼ö ¾øÀ» ¶§´Â ¿¡·¯ 󸮵ȴÙ.
(5) Çü½Ä2)ÀÇ ÀÎÀÚ field_no°¡ 0 º¸´Ù À۰ųª ¶Ç´Â Ç׸ñÀÇ °³¼öº¸´Ù Å©°Å³ª °°À¸
¸é Á¤¼ö -1 ÀÌ result¿¡ µ¹·ÁÁø´Ù.
(6) À§ÀÇ ¼³¸í(2)³ª ¼³¸í(5)ÀÇ °æ¿ì°¡ ¾Æ´Ï¸é ¼³¸í(7)ÀÇ ¸â¹ö º¯¼ö¸¦ Áö´Ñ °´Ã¼°¡
result¿¡ µ¹·ÁÁø´Ù.
(7) °á°ú°ª °´Ã¼ÀÎ resultÀÇ ¸â¹öº¯¼ö ¼³¸í
==========================================================
°´Ã¼¿Í ¸â¹öº¯¼ö¸í ÀÚ·áÇü ¼³ ¸í
------------------ -------- ------------------------------
result.name (¹®ÀÚ¿) Ç׸ñÀÇ À̸§
result.table (¹®ÀÚ¿) ¼Ò¼Ó Å×À̺í À̸§
result.default (¹®ÀÚ¿) Ç׸ñÀÇ ÃʱⰪ
result.type (¹®ÀÚ¿) Ç׸ñÀÇ ÀÚ·áÇü
result.type_value (Á¤¼ö) Ç׸ñÀÇ ÀÚ·áÇüÀ» ÀǹÌÇÏ´Â ¼öÄ¡
result.length (Á¤¼ö) Ç׸ñÀÇ Å©±â(bytes)
result.max_length (Á¤¼ö) Ç׸ñÀÇ ÃÖ´ë Å©±â(bytes)
result.decimals (Á¤¼ö) Ç׸ñÀÇ ¼Ò¼ö¾Æ·¡ ÀÚ¸®¼ö
result.flags (Á¤¼ö) Ç׸ñÀÇ Ç÷¡±×
==========================================================
1) result.type_valueÀÇ °ª ¼³¸í(MySQLÀÇ ¹öÀü¿¡ µû¶ó Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖÀ½)
================================================================
°ª ÀÚ·áÇü | °ª ÀÚ·áÇü | °ª ÀÚ·áÇü
---- ---------- | ---- ---------- | ---- -----------------------
0 decimal | 8 bigint | 248 set
1 tinyint | 9 mediumint | 249 tinyblob, tinytext
2 smallint | 10 date | 250 mediumblob, mediumtext
3 int | 11 time | 251 longblob, longtext
4 float | 12 datetime | 252 blob, text
5 double | 13 year | 253 varchar
6 null | 14 date | 254 char
7 timestamp | 247 enum |
================================================================
2) result.flagsÀÇ ¼³¸í(MySQLÀÇ ¹öÀü¿¡ µû¶ó Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖÀ½)
==========================================================
result.flagsÀÇ bit °ª flagÀÇ ÀǹÌ
------------------------------------------ ---------------
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 (1) NOT NULL
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 (2) PRIMARY KEY
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 (4) UNIQUE KEY
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 (8) MULTIPLE KEY
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 (16) BLOB FLAG
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 (32) UNSIGNED FLAG
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 (64) ZEROFILL FLAG
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 (128) BINARY FLAG
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 (256) ENUM FLAG
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 (512) PART KEY
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 (1024) GROUP FLAG
==========================================================
4. »ç¿ë¿¹#1
mysql= mysql_connect(NULL, myuser, mypass); // localhost¸¦ ¿¬°áÇÑ´Ù.
if(mysql==MYSQL_ERR) { print("MySQL ¼¹ö ¿¬°á ¿¡·¯!\n"); return(-1); }
if(mysql_select_db(mysql, "welhelp")==MYSQL_ERR) // welhelp database ¼±ÅÃ
{
print("welhelp database ¼±Åà ¿¡·¯!\n"); return(-1);
}
myres= mysql_list_fields(mysql, "addr"); // addr Å×À̺íÀÇ Ç׸ñ ¸®½ºÆ® ¾ò±â
if(myres==MYSQL_ERR) { print("addr error!\n"); return; }
fd= mysql_fetch_field(myres, 1); // µÎ¹ø° Ç׸ñ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò´Â´Ù.
printf("%s %s %s [%d] (%s) %lu %lu %u %u\n", fd.name, fd.table, fd.type,
fd.type_value,fd.default,fd.length,fd.max_length,fd.decimals,fd.flags);
mysql_free_result(myres);
mysql_close(mysql);
------------------------------ [ Ãâ·Â°á°ú ] ------------------------------
age addr int [3] () 4 0 0 0
5. »ç¿ë¿¹#2
mysql= mysql_connect(NULL, myuser, mypass); // localhost¸¦ ¿¬°áÇÑ´Ù.
if(mysql==MYSQL_ERR) { print("MySQL ¼¹ö ¿¬°á ¿¡·¯!\n"); return(-1); }
if(mysql_select_db(mysql, "welhelp")==MYSQL_ERR) // welhelp database ¼±ÅÃ
{
print("welhelp database ¼±Åà ¿¡·¯!\n"); return(-1);
}
myres= mysql_list_fields(mysql, "addr"); // addr Å×À̺íÀÇ Ç׸ñ ¸®½ºÆ® ¾ò±â
if(myres==MYSQL_ERR) { print("addr error!\n"); return; }
mysql_field_seek(myres, 2); // 3¹ø° Ç׸ñÀ¸·Î Çʵå Ä¿¼¸¦ À̵¿ÇÑ´Ù.
fd= mysql_fetch_field(myres); // Çʵå Ä¿¼ÀÇ Ç׸ñ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò´Â´Ù.
printf("%s %s %s [%d] (%s) %lu %lu %u %u\n", fd.name, fd.table, fd.type,
fd.type_value,fd.default,fd.length,fd.max_length,fd.decimals,fd.flags);
mysql_free_result(myres);
mysql_close(mysql);
------------------------------ [ Ãâ·Â°á°ú ] ------------------------------
address addr tinytext [252] () 255 0 0 16
6. »ç¿ë¿¹#3
mysql= mysql_connect(NULL, myuser, mypass); // localhost¸¦ ¿¬°áÇÑ´Ù.
if(mysql==MYSQL_ERR) { print("MySQL ¼¹ö ¿¬°á ¿¡·¯!\n"); return(-1); }
if(mysql_select_db(mysql,"welhelp")==-1) { print("DB Err!"); return(-1); }
myres= mysql_list_fields(mysql, "addr"); // addr Å×À̺íÀÇ Ç׸ñ ¸®½ºÆ® ¾ò±â
if(myres==MYSQL_ERR) { print("addr error!\n"); return; }
while( (fd= mysql_fetch_field(myres))!=MYSQL_ERR )
{
printf(" %s %s %s [%d] (%s) %lu %lu %u %u\n", fd.name,fd.table,fd.type,
fd.type_value, fd.default, fd.length, fd.max_length,
fd.decimals, fd.flags);
}
mysql_free_result(myres); mysql_close(mysql);
------------------------------ [ Ãâ·Â°á°ú ] ------------------------------
name addr tinytext [252] () 255 0 0 17
age addr int [3] () 4 0 0 0
address addr tinytext [252] () 255 0 0 16
|