글을 다 날려서 다시 적는다. !! (2009-05-06에 날림) 2008/01/03 xx:xx 원본보기
MySQL C API를 이용해서 MySQL 서버에 접속해보자. ( MySQL 5.0 )
MySQL C API 란 .. ?
MySQL C API는 MySQL 팀이 개발했기 때문에 가장 광범위하게 쓰이며 , 다른 API의 기초가 된다.
- MySQL 5.0 한글 메뉴얼 참고.
- MySQL 설치하기
- MySQL 함수의 개요
- MySQL 계정 추가하기
- MySQL , VC 로 접속하기
2. C API 개요 - 참고 : MYSQL 5.0 한글 메뉴얼 (
링크 )
2 - 1. 함수 소개
함수 개요 보기..
함수
|
설명
|
mysql_affected_rows()
|
마지막 UPDATE, DELETE, 또는 INSERT 쿼리에 의해 변경, 삭제, 삽입된 로우들의 숫자로 리턴
|
mysql_autocommit()
|
자동수행(autocommit) 모드 on/off를 전환한다.
|
mysql_change_user()
|
공개된 커넥션에서 사용자와 데이터베이스 변경.
|
mysql_close()
|
서버 연결을 종료.
|
mysql_commit()
|
트랜잭션을 수행.
|
mysql_connect()
|
MySQL 서버를 연결. 이 함수는 무시된다; 대신 mysql_real_connect() 함수 사용.
|
mysql_create_db()
|
데이터베이스를 생성. 이 함수는 무시된다; 대신에 SQL 문 CREATE DATABASE 을 사용.
|
mysql_data_seek()
|
쿼리 결과 세트에서 임의의 로우 숫자를 찾는다.
|
mysql_debug()
|
주어진 문자열로 DBUG_PUSH 한다.
|
mysql_drop_db()
|
데이터베이스를 드롭한다. 이 함수는 무시된다; 대신에 SQL문 DROP DATABASE 을 사용.
|
mysql_dump_debug_info()
|
서버가 로그에 디버그 정보를 쓰게 만든다.
|
mysql_eof()
|
결과 셋의 마지막 로우가 읽혀지는지 여부를 결정한다. 이 기능은 무시된다; mysql_errno() 또는 mysql_error() 함수가 대신 사용된다.
|
mysql_errno()
|
가장 최근에 호출된 MySQL 함수의 에러 숫자를 리턴한다.
|
mysql_error()
|
가장 최근에 호출된 MySQL 함수의 에러 메시지를 리턴한다.
|
mysql_escape_string()
|
SQL 문에 사용하는 경우 문자열에서 스페셜 문자(캐릭터)를 중단한다.
|
mysql_fetch_field()
|
다음 테이블 필드의 타입을 리턴한다.
|
mysql_fetch_field_direct()
|
필드 숫자가 주어진 테이블 필드의 타입을 리턴한다.
|
mysql_fetch_fields()
|
모든 필드 구조의 배열을 리턴한다.
|
mysql_fetch_lengths()
|
현재 로우에서 모든 컬럼의 길이를 리턴한다.
|
mysql_fetch_row()
|
결과 셋에서 그 다음 로우를 호출한다.
|
mysql_field_seek()
|
컬럼 커서를 지정된 컬럼에 넣는다.
|
mysql_field_count()
|
가장 최근 명령문의 경우 결과 컬럼의 수를 리턴한다.
|
mysql_field_tell()
|
마지막 mysql_fetch_field()함수에 사용된 필드 커서의 포지션을 리턴한다.
|
mysql_free_result()
|
결과 셋이 사용한 메모리를 제거한다.
|
mysql_get_client_info()
|
문자열로써 클라이언트 버전 정보를 리턴한다.
|
mysql_get_client_version()
|
정수로써 클라이언트 버전 정보를 리턴한다.
|
mysql_get_host_info()
|
커넥션을 설명한 문자열을 리턴한다.
|
mysql_get_server_version()
|
정수로써 서버의 버전 숫자를 리턴한다.
|
mysql_get_proto_info()
|
연결에 사용된 프로토콜 버전을 리턴한다.
|
mysql_get_server_info()
|
서버 버전 숫자를 리턴한다.
|
mysql_info()
|
가장 최근에 실행된 쿼리에 관한 정보를 리턴한다.
|
mysql_init()
|
MYSQL 구조를 획득하거나 초기화하다.
|
mysql_insert_id()
|
AUTO_INCREMENT 컬럼에 이전 쿼리에 의해 발생한 ID를 리턴한다.
|
mysql_kill()
|
주어진 쓰레드를 끄다(죽이다).
|
mysql_library_end()
|
MySQL C API 라이브러리는 끝내다.
|
mysql_library_init()
|
MySQL C API 라이브러리를 초기화하다.
|
mysql_list_dbs()
|
간단한 수식에 맞는 데이터베이스 이름을 리턴한다.
|
mysql_list_fields()
|
간단한 수식에 맞는 필드 이름을 리턴한다.
|
mysql_list_processes()
|
현재 서버 쓰레드의 목록을 리턴한다.
|
mysql_list_tables()
|
간단한 수식에 맞는 테이블 이름을 리턴한다.
|
mysql_more_results()
|
더 많은 결과가 있는지 체크한다.
|
mysql_next_result()
|
멀티-명령문 실행에서 그 다음 결과를 리턴한다/초기화한다.
|
mysql_num_fields()
|
결과 셋에서 컬럼의 숫자를 리턴한다.
|
mysql_num_rows()
|
결과 셋에서 로우의 숫자를 리턴한다.
|
mysql_options()
|
mysql_connect()함수의 경우 연결 옵션을 설정한다
|
mysql_ping()
|
필요에 따라 서버로의 연결이 되어 있는지 다시 연결해야 할지 체크한다.
|
mysql_query()
|
null로 종결된 문자열로 지정된 SQL 쿼리를 실행한다.
|
mysql_real_connect()
|
MySQL 서버로 연결한다.
|
mysql_real_escape_string()
|
현재 연결중인 캐릭터 셋을 고려하여 SQL 문에서 사용시 문자열에서 특수 문자(캐릭터)를 중단한다.
|
mysql_real_query()
|
계산에 포함된 문자열로 지정된 SQL 쿼리를 실행한다.
|
mysql_refresh()
|
테이블과 캐시를 쏟아내거나(flush) 재설정한다.
|
mysql_reload()
|
서버가 grant 테이블을 다시 로드하도록 전달한다.
|
mysql_rollback()
|
트랜잭션 롤백.
|
mysql_row_seek()
|
mysql_row_tell()함수로부터 리턴된 값을 사용하는 결과 셋에서 로우 오프셋을 찾는다.
|
mysql_row_tell()
|
로우 커서 위치를 리턴한다.
|
mysql_select_db()
|
데이터베이스를 선택한다.
|
mysql_server_end()
|
임베디드 서버 라이브러리를 종결한다.
|
mysql_server_init()
|
임베디드 서버 라이브러리를 초기화한다.
|
mysql_set_local_infile_default()
|
디폴트 값으로LOAD DATA LOCAL INFILE 조정기 콜백(callback)을 설정한다.
|
mysql_set_local_infile_handler()
|
어플리케이션을 위한LOAD DATA LOCAL INFILE 조정기 콜백(callback)을 인스톨한다.
|
mysql_set_server_option()
|
연결시 옵션을 설정한다(lmulti-statements처럼).
|
mysql_sqlstate()
|
최근 에러의 경우, SQLSTATE 에러코드를 리턴한다.
|
mysql_shutdown()
|
데이터베이스 서버를 셧다운한다.
|
mysql_stat()
|
문자열로 서버의 상태를 리턴한다.
|
mysql_store_result()
|
클라이언트로 완벽한 결과 셋을 검색한다.
|
mysql_thread_id()
|
현재 쓰레드 ID를 리턴한다.
|
mysql_thread_safe()
|
클라이언트가 쓰레드에 안전하게 컴파일 되었다면 1을 리턴한다.
|
mysql_use_result()
|
로우 별로 결과 셋 검색을 시작한다.
|
mysql_warning_count()
|
이전 SQL문의 경우 경고 카운트를 리턴한다.
|
2-2. MYSQL 어플리케이션의 기본적인 방법. ( 1 번과 5번은 5.0.3 에서부터 적용. )
mysql_library_init() 를 호출 , MySQL 라이브러리 초기화. (임베디드 에서 사용 )
- mysql_init() 함수를 호출 , 핸들러를 초기화.
- mysql_real_connect() 함수를 호출, 서버에 연결.
SQL 문을 끝내고 결과를 처리.
- mysql_close() 함수를 호출. MySQL 서버 연결 종료.
mysql_library_end() 호출 , MySQL 라이브러리 종료. (임베디드 에서 사용 )
2 ~ 3번 예제
MYSQL mysql;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
}
mysql_close(&mysql);
다음과 같이 기본적인 틀을 따른다.
각 함수에 대한 자세한 내용이나 더욱 더 자세한 내용은 MySQL
한글 공식 사이트 에서 한글 메뉴얼 5.0 을 참고 바란다.
1, 5번 예제 (
참고 )
예제 보기..
#include <mysql.h>
#include <stdlib.h>
static char *server_args[] = {
"this_program", /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] = {
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void) {
if (mysql_library_init(sizeof(server_args) / sizeof(char *),
server_args, server_groups)) {
fprintf(stderr, "could not initialize MySQL library\n");
exit(1);
}
/* Use any MySQL API functions here */
mysql_library_end();
return EXIT_SUCCESS;
}
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.