C++MySQL 데이터베이스 연결 및 사용

8482 단어 C++MySQL
본 논문 의 사례 는 C+연결 을 공유 하고 MySQL 데이터 베 이 스 를 사용 하 는 구체 적 인 코드 를 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.C++MySQL 데이터베이스 연결
먼저 VS 에 C++프로젝트 를 새로 만 들 고 프로젝트 이름 을 오른쪽 단추 로 눌 러 속성 을 선택 합 니 다.

플랫폼 선택

설정 관리자 선택

새 항목 선택

드 롭 다운 메뉴 에서 X 64 를 선택 하 십시오.확인

C/C++->일반->포함 디 렉 터 리 추가,C:\Program Files\\MySQL\\MySQL Server 5.5\\include 추가(설치 디 렉 터 리 에 따라 선택)

커 넥 터->일반->추가 라 이브 러 리 디 렉 터 리 를 선택 하 십시오.C:\\Program Files\\MySQL\\MySQL Server 5.5\\lib 추가;(자기 설치 디 렉 터 리 에 따라 선택)

커 넥 터->입력->추가 의존 항목 을 선택 하 십시오.C:\\Program Files\\MySQL\\MySQL Server 5.5\lib\\libmysql.lib 를 추가 합 니 다.(자기 설치 디 렉 터 리 에 따라 선택)

마지막 으로 동적 링크 라 이브 러 리 libmysql.dll 을 프로젝트 의 X64 생 성 디 렉 터 리 에 복사 합 니 다.이 동적 연결 라 이브 러 리 파일 은 C:\Program Files\\MySQL\\MySQL Server 5.5\\lib\디 렉 터 리 에 있 습 니 다.

2.MySQL 상용 API 함수
mysql_affected_rows()는 최신 UPDATE,DELETE 또는 INSERT 조회 에 영향 을 받 은 줄 수 를 되 돌려 줍 니 다.
mysql_close()서버 연결 을 닫 습 니 다.
mysql_connect()는 MySQL 서버 에 연결 합 니 다.이 함 수 는 추천 하지 않 습 니 다.mysql 사용real_connect()대체.
mysql_change_user()는 열 린 연결 에 있 는 사용자 와 데이터 베 이 스 를 변경 합 니 다.
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()또는 my sqlerror()는 반대로 사용 할 수 있 습 니 다.
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_host_info()연결 을 설명 하 는 문자열 을 되 돌려 줍 니 다.
mysql_get_proto_info()연결 에 사용 할 프로 토 콜 버 전 을 되 돌려 줍 니 다.
mysql_get_server_info()는 서버 버 전 번 호 를 되 돌려 줍 니 다.
mysql_info()는 최근 에 실 행 된 조회 에 대한 정 보 를 되 돌려 줍 니 다.
mysql_init()는 MYSQL 구 조 를 가 져 오 거나 초기 화 합 니 다.
mysql_insert_id()이전 검색 어 를 AUTO 로 되 돌려 줍 니 다.INCREMENT 열 에서 생 성 된 ID 입 니 다.
mysql_kill()은 주어진 스 레 드 를 죽 입 니 다.
mysql_list_dbs()는 간단 한 정규 표현 식 과 일치 하 는 데이터베이스 이름 을 되 돌려 줍 니 다.
mysql_list_fields()는 간단 한 정규 표현 식 과 일치 하 는 열 이름 을 되 돌려 줍 니 다.
mysql_list_processes()는 현재 서버 스 레 드 의 표를 되 돌려 줍 니 다.
mysql_list_tables()는 간단 한 정규 표현 식 과 일치 하 는 표 이름 을 되 돌려 줍 니 다.
mysql_num_fields()는 결과 집합 이 무 거 운 열의 수량 을 되 돌려 줍 니 다.
mysql_num_rows()는 결과 집합 에 있 는 줄 의 수 를 되 돌려 줍 니 다.
mysql_options()설정connect()의 연결 옵션 입 니 다.
mysql_ping()은 서버 연결 이 작 동 하고 있 는 지 확인 하고 필요 할 때 다시 연결 합 니 다.
mysql_query()는 빈 끝 문자열 로 지정 한 SQL 조 회 를 실행 합 니 다.
mysql_real_connect()는 MySQL 서버 에 연결 합 니 다.
mysql_real_query()는 계수 가 있 는 문자열 로 지정 한 SQL 조 회 를 실행 합 니 다.
mysql_reload()는 서버 에 권한 수여 표를 다시 설치 하 라 고 알려 줍 니 다.
mysql_row_seek()결과 집합 에 있 는 줄 을 검색 하여 my sql 를 사용 합 니 다.row_tell()되 돌아 오 는 값 입 니 다.
mysql_row_tell()줄 커서 위 치 를 되 돌려 줍 니 다.
mysql_select_db()데이터 베 이 스 를 연결 합 니 다.
mysql_shutdown()데이터베이스 서버 를 끄 십시오.
mysql_stat()는 문자열 로 된 서버 상 태 를 되 돌려 줍 니 다.
mysql_store_result()는 완전한 결 과 를 검색 하여 고객 에 게 집합 합 니 다.
mysql_thread_id()현재 스 레 드 의 ID 를 되 돌려 줍 니 다.
mysql_use_result()결과 집합 검색 을 한 줄 한 줄 초기 화 합 니 다.
3.C++MySQL 데이터베이스 사용
예제 프로그램,자체 소화,포 함 된 API 모 르 면 Google

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<Windows.h>
#include<WinSock.h>
#include<mysql.h>


using namespace std;
#pragma comment(lib,"libmysql.lib")
#pragma comment(lib,"wsock32.lib")
MYSQL *mysql = new MYSQL; //mysql   
MYSQL_FIELD *fd; //      
char field[32][32]; //         
MYSQL_RES *res; //                  
MYSQL_ROW column; //          (type-safe)   ,        
char query[150]; //     

bool ConnectDatabase();
bool QueryDatabase1();
//bool QueryDatabase2();
int main()
{
 ConnectDatabase();
 QueryDatabase1();
 //QueryDatabase2();
 system("pause");
 return 0;
}


bool ConnectDatabase()
{
 //   mysql 
 mysql_init(mysql);
 //  false     ,  true      
 if (!(mysql_real_connect(mysql, "localhost", "root", "123456", "company", 0, NULL, 0))) //       ,   ,  ,    ,   (     0  3306 ),            
 {
  printf("Error connecting to database:%s
", mysql_error(mysql)); return false; } else { printf("Connected...
"); return true; } return true; } bool QueryDatabase1() { sprintf_s(query, "select * from t_dept"); // , ,user , , strcpy mysql_query(mysql, "set names gbk"); // (SET NAMES GBK ), cmd // 0 , 1 if (mysql_query(mysql, query)) // SQL { printf("Query failed (%s)
", mysql_error(mysql)); return false; } else { printf("query success
"); } // if (!(res = mysql_store_result(mysql))) // sql { printf("Couldn't get result from %s
", mysql_error(mysql)); return false; } // printf("number of dataline returned: %d
", mysql_affected_rows(mysql)); // char *str_field[32]; // for (int i = 0; i<4; i++) // { str_field[i] = mysql_fetch_field(res)->name; } for (int i = 0; i<4; i++) // printf("%10s\t", str_field[i]); printf("
"); // while (column = mysql_fetch_row(res)) // , { printf("%10s\t%10s\t%10s\t%10s
", column[0], column[1], column[2], column[3]); //column } return true; } //bool QueryDatabase2() //{ // mysql_query(mysql, "set names gbk"); // // 0 , 1 // if (mysql_query(mysql, "select * from user")) // SQL // { // printf("Query failed (%s)
", mysql_error(mysql)); // return false; // } // else // { // printf("query success
"); // } // res = mysql_store_result(mysql); // // // printf("number of dataline returned: %d
", mysql_affected_rows(mysql)); // for (int i = 0; fd = mysql_fetch_field(res); i++) // // strcpy(field[i], fd->name); // int j = mysql_num_fields(res);// // for (int i = 0; i<j; i++)// // printf("%10s\t", field[i]); // printf("
"); // while (column = mysql_fetch_row(res)) // { // for (int i = 0; i<j; i++) // printf("%10s\t", column[i]); // printf("
"); // } // return true; // //}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기