Mysql API / C/C++ 연동하기 강좌 (3. C/C++ Mysql 테스트 Full소스)
프로그래밍 언어/C++2009. 12. 2. 16:53
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 #include "stdio.h"#include "winsock2.h"#include "mysql.h"#pragma comment(lib, "libmysql.lib")const char *host = "localhost";const char *user = "root";const char *pw = "*******";const char *db = "bbs";int _tmain(int argc, _TCHAR* argv[]){MYSQL *connection = NULL;MYSQL conn;MYSQL_RES *sql_result;MYSQL_ROW sql_row;if(mysql_init(&conn) == NULL){printf("mysql_init() error!");}connection = mysql_real_connect(&conn, host, user, pw, db, 3306, (const char*)NULL, 0);if(connection == NULL) // 연결 에러 처리{printf("%d 에러 : %s, %d\n", mysql_errno(&conn), mysql_error(&conn));return 1;}else{printf("연결 성공\n"); // 연결 성공 메시지 출력if(mysql_select_db(&conn, db)) // 데이터베이스 선택{printf("%d 에러 : %s, %d\n", mysql_errno(&conn), mysql_error(&conn));return 1;}char *query = "select *from korea";int state = 0;state = mysql_query(connection, query);if(state == 0){sql_result = mysql_store_result(connection); // Result Set에 저장while((sql_row = mysql_fetch_row(sql_result))!= NULL) // Result Set에서 1개씩 배열에 가져옴{printf("%s %s %s %s\n",sql_row[0],sql_row[1],sql_row[2],sql_row[3]); // 저장된 배열을 출력}mysql_free_result(sql_result); // Result Set 해제한다}mysql_close(connection); // db서버 종료}return 0;}
간단한 접속 확인 및 테이블 출력을 해보았습니다. 실행 결과는 아래 화면입니다.
< 실행 성공시 출력 화면 >
< 실행 실패시 출력 화면 >
비교를 위해서 에러실행화면도 추가하였습니다. 에러메시지는 root 아이디를 roots로 바꿔서 에러메시지를 내게 출력한 결과입니다.
저는 위 실행 성공 화면에 보게 되면 몇개의 데이터값을 출력하는 것을 볼 수 있는데, 필자가 소스 실행전에 sql서버에 database 및 테이블을 생성후 값을 입력하였습니다.
bbs라는 데이터베이스 생성, bbs에서 korea라는 테이블을 생성한 다음 간단하게
no int(10) auto_increment, id varchar(10), pw varchar(10), msg varchar(100) 으로 생성하여 값을 입력하엿습니다.
위와 같이 정상적으로 db에 저장된 데이터를 출력하는 것을 확인할 수 있습니다.
1
korea
1234
korea is good
잠깐!!!
#pragma comment(lib, "libmysql.lib") 이 뭐에요?
추가 종속 라이브러리 파일을 코드 구문에 바로 추가하는 것입니다. 보통 라이브러리를 추가할때 프로젝트 속성 내에서 링커에 추가되는 추가 종속성 라이브러리를 코드구문으로 바로 삽입할 수 있습니다.
소켓 프로그래밍을 위해서는 "winsock2.h" 헤더파일과 함께 "ws2_32.lib" 라이브러리를 추가하게 되는데 프로젝트 속성에서 추가해도 되고 위와 같이 소스구문 한줄로 추가해도 됩니다.
#pragma comment(lib, "libmysql.lib") 이 뭐에요?
추가 종속 라이브러리 파일을 코드 구문에 바로 추가하는 것입니다. 보통 라이브러리를 추가할때 프로젝트 속성 내에서 링커에 추가되는 추가 종속성 라이브러리를 코드구문으로 바로 삽입할 수 있습니다.
소켓 프로그래밍을 위해서는 "winsock2.h" 헤더파일과 함께 "ws2_32.lib" 라이브러리를 추가하게 되는데 프로젝트 속성에서 추가해도 되고 위와 같이 소스구문 한줄로 추가해도 됩니다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
Mysql API / C/C++ 연동하기 강좌 (6. mysql c++클래스 연동 예제 / 도서관리) (4) | 2009.12.15 |
---|---|
Mysql API / C/C++ 연동하기 강좌 (5. mysql_field_count() 깔끔한 Error처리) (0) | 2009.12.15 |
Mysql API / C/C++ 연동하기 강좌 (4. C/C++ Mysql Class 소스) (0) | 2009.12.04 |
Mysql API / C/C++ 연동하기 강좌 (2. C/C++ Mysql API 알아보기) (0) | 2009.12.02 |
Mysql API / C/C++ 연동하기 강좌 (1. mysql 설치 및 Visual Studio 환경설정) (0) | 2009.12.01 |