Thinking Different




MYSQL for C/API 자료형
MYSQL                                 Database와의 연결을 관리하는 구조체입니다.
MYSQL_RES SELECT            결과를 리턴하는 query의 결과를 나타내는 자료형입니다.
MYSQL_ROW MYSQL_RES     하나의 레코드씩 값을 얻어 올때 쓰이는 자료형입니다.
MYSQL_FIELD                       필드의 이름과 필드의 타입 등 필드에 관한 정보를 저장하는 자료형입니다.

// 초기화 함수
MYSQL *  mysql_init(MYSQL *mysql);
mysql 구조체를 초기화해주는 함수이다. 반드시 처음 실행시 초기화를 해줘야 된다.


// 접속 및 해제 함수
MYSQL *mysql_real_connect( MYSQL *mysql, const char *host,
                                        const char *user, const char *passwd,
                                        const char *db, unsigned int port,
                                        const char *unix_socket, unsigend long clinet_flag)

mysql - 현재 mysql 구조의 어드레스
host - 호스트 이름이나 ip Addr  NULL 이거나 "localhost"는 로컬 호스트로 연결된것으로 본다.
user - user ID 만약 NULL이라면 unix는 현재 로그인 이름
passwd - user의 password
db - 데이터 베이스 이름 NULL이면 디폴트 DB로 설정된다.
port - 0 이 아니면 TCP/IP 연결 포트
unix_socket - NULL 이 아니면 문자열은 소켓 또는 사용했던 Named PIPE를 지정한다.
Clinet_flag - 대채로 0 정확한 기능은 관련문서 참조
mysql 서버와 connect 합니다.

void mysql_close(MYSQL *sock);
mysql 서버와 disconnect 합니다.

// 접속 후 db 관리 함수
int  mysql_select_db(MYSQL *mysql, const char *db);
mysql - mysql 구조체 어드레스
db - 데이터베이스명
데이터베이스를 선택합니다. (반환 :  0이 아닌값은 에러)

int  mysql_query(MYSQL *mysql, const char *q);
mysql - 구조체
q - 퀴리(질의문)
쿼리가 실행가능한 문인지 판단후 반환합니다. (반환 : 0이 아닌값은 에러)

MYSQL_RES *  mysql_store_result(MYSQL *mysql);
mysql_query()
로 실행한 쿼리 Result Set 을 저장 합니다.

MYSQL_ROW  mysql_fetch_row(MYSQL_RES *result);
Result Set에서 하나의 row를 배열로 가져옵니다.

void  mysql_free_result(MYSQL_RES *result);
Result Set을 제거합니다.   쿼리작업을 모두 끝낸 Result Set은 반드시 free로 해제해줘야 합니다.


// 에러 메시지 함수
unsigned int  mysql_errno(MYSQL *mysql);
mysql 에러Number를 리턴합니다.

const char *  mysql_error(MYSQL *mysql);
mysql 에러메시지를 리턴합니다.

error ex)     printf("%d error : %s\n", mysql_errno(&conn), mysql_error(&conn));


위 관련 함수 선언은 mysql.h 파일에 기제되어 있으며 기타 다른 함수들 참조시 헤당 헤더파일을 참조하면 됩니다.


다음 강좌는 전체적인 소스를 하나 간단하게 보면서 설명을 진행하도록 하겠습니다.