1. MySQL API를 이용한 예제 (TEST CODE)
※ MySQL API를 이용할 경우 이점
- Windows의 경우 ODBC를 설치하지 않고도 MySQL를 사용할 수 있다.
- Linux나 Unix 환경처럼 ODBC와 같은 범용 데이터베이스 연결 컨트롤을 사용할 수 없는 경우에도 사용가능하다.
#define SOCKET int #include <mysql.h> #include <string.h> #include <stdio.h> #pragma comment(lib, "libmySQL.lib") #define DB_HOST "도메인 또는 IP" #define DB_USER "유저명" #define DB_PASS "암호" #define DB_NAME "DB명" #define SQL_CREATE_TABLE "CREATE TABLE `mysql_api_test` (\ `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,\ `num` INT NULL ,\ `string` VARCHAR( 20 ) NULL \ ) TYPE = MYISAM ;" //" #define SQL_INSERT_RECORD "INSERT INTO `mysql_api_test` ( `id` , `num` , `string` ) \ VALUES (\ NULL , '%d', '%s'\ );" //" #define SQL_SELECT_RECORD "SELECT * FROM `mysql_api_test`" #define SQL_DROP_TABLE "DROP TABLE `mysql_api_test`" int main() { MYSQL *connection=NULL, conn; MYSQL_RES *sql_result; MYSQL_ROW sql_row; int query_stat; char query[255]; mysql_init(&conn); // DB 연결 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,SQL_CREATE_TABLE); if (query_stat != 0) { fprintf(stderr, "Mysql query error : %s", mysql_error(&conn)); return 1; } // 레코드 삽입 for(int i=0;i<5;i++) { sprintf(query,SQL_INSERT_RECORD,100+i,"realmind는 마법사일까?"); query_stat = mysql_query(connection, query); if (query_stat != 0) { fprintf(stderr, "Mysql query error : %s", mysql_error(&conn)); return 1; } } // 셀렉트 query_stat=mysql_query(connection,SQL_SELECT_RECORD); if (query_stat != 0) { fprintf(stderr, "Mysql query error : %s", mysql_error(&conn)); return 1; } // 결과 출력 sql_result=mysql_store_result(connection); while((sql_row=mysql_fetch_row(sql_result))!=NULL) { printf("%2s %2s %s\n",sql_row[0],sql_row[1],sql_row[2]); } mysql_free_result(sql_result); // 테이블 삭제 query_stat=mysql_query(connection,SQL_DROP_TABLE); if (query_stat != 0) { fprintf(stderr, "Mysql query error : %s", mysql_error(&conn)); return 1; } // DB 연결 닫기 mysql_close(connection); return 0; }
※ MySQL API를 이용할 경우 이점
- Windows의 경우 ODBC를 설치하지 않고도 MySQL를 사용할 수 있다.
- Linux나 Unix 환경처럼 ODBC와 같은 범용 데이터베이스 연결 컨트롤을 사용할 수 없는 경우에도 사용가능하다.