카페 > 세은파파의 프로그래밍 하자 .. | 세은파파
http://cafe.naver.com/cyberzone/172
http://cafe.naver.com/cyberzone/172
MySQL C API
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_OFFSET mysql_field_seek(MYSQL* mysql, MYSQL_FIELD_OFFSET offset)
임의의 필드에 접근을 하도록 한다.
9) MYSQL_FIELD_OFFSET mysql_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 씩 받아 온다.
간단한 예
***********************************************************
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: }
*****************************************************
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_OFFSET mysql_field_seek(MYSQL* mysql, MYSQL_FIELD_OFFSET offset)
임의의 필드에 접근을 하도록 한다.
9) MYSQL_FIELD_OFFSET mysql_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 씩 받아 온다.
간단한 예
***********************************************************
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: }
*****************************************************
'윈도우 서버에 대해서' 카테고리의 다른 글
윈도우 환경에서 MySql C 프로그래밍 세팅법 (0) | 2009.03.18 |
---|---|
이전에 만들던 게임서버 윈도우 버젼으로 컨버팅... (0) | 2009.02.01 |
MySQL C API 예제 (0) | 2008.06.19 |
VC++과 Mysql C Lib 연동하기 팁 (0) | 2008.06.19 |
ADO 헨들러... (0) | 2007.10.31 |