로컬 mysql 데이터베이스에 연결해야 하는 경우 mysql 데이터베이스가 로컬에 설치되어 있어야 한다는 전제가 있습니다. 여기에는 데이터베이스 연결, 쿼리 문 실행 및 기타 작업과 같은 일부 mysql API가 사용됩니다.
#include <mysql/mysql.h>
1. mysql 데이터베이스에 연결
1. mysql 데이터베이스에 연결
물론 mysql 데이터에 있는 데이터를 얻으려면 먼저 데이터베이스에 연결하고 해당 작업을 수행할 수 있는 핸들을 얻어야 합니다. 데이터 베이스.
2. 쿼리문을 실행합니다. 즉, 필요한 데이터를 선택합니다.
는 쿼리문을 실행하여 필요한 데이터를 쿼리하는 것입니다. 쿼리된 데이터는 결과 집합이라는 위치에 저장됩니다.
3. 결과 집합에서 필요한 데이터 가져오기
관련 인터페이스 기능을 사용하여 결과 집합의 각 행과 필드의 데이터를 가져옵니다.
4. 결과 세트에서 각 행의 각 필드 정보를 추출합니다.
5. 결과 세트의 mysql 핸들을 포함한 리소스를 해제합니다.
다음은 사용해야 하는 몇 가지 주요 인터페이스 기능에 대한 자세한 설명입니다.
2.1 mysql_real_connect
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, unsigned long client_flag )
이 함수에는 많은 매개변수가 있으며, 각 매개변수의 의미는 다음과 같습니다.
: 기존 MYSQL 구조의 주소입니다. mysql_real_connect()를 호출하기 전에 mysql_init()를 호출하여 MYSQL 구조를 초기화해야 합니다.
: 호스트 이름 또는 IP 주소입니다. "host"가 NULL이거나 문자열 "localhost"인 경우 연결은 localhost에 대한 연결로 처리됩니다.
: 사용자의 MySQL 로그인 ID입니다. "user"가 NULL이거나 빈 문자열 ""인 경우 해당 사용자는 현재 사용자로 간주됩니다.
: 사용자의 비밀번호. "passwd"가 NULL이면 사용자의 사용자 테이블에 있는 항목(비어 있는 비밀번호 필드가 있음)만 일치하는지 확인됩니다.
: 데이터베이스 이름입니다. db가 NULL이면 연결은 기본 데이터베이스를 이 값으로 설정합니다.
: "port"가 0이 아닌 경우 해당 값은 TCP/IP 연결을 위한 포트 번호로 사용됩니다. "host" 매개변수는 연결 유형을 결정합니다.
: unix_socket이 NULL이 아닌 경우 이 문자열은 사용해야 하는 소켓 또는 명명된 파이프를 설명합니다. "host" 매개변수는 연결 유형을 결정합니다.
: 값은 일반적으로 0
int mysql_query(MYSQL *mysql, const char *stmt_str)
or:
int mysql_real_query(MYSQL *mysql, const char *stmt_str, unsigned long length)
MYSQL_RES *mysql_store_result(MYSQL *mysql)
2.4 결과 집합 표시 데이터의 각 행
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
#include쿼리 결과는 다음과 같습니다.#include <mysql/mysql.h> #include using namespace std; MYSQL mysql; //mysql连接 MYSQL_RES* res; //结果集结构体 MYSQL_ROW row; //char** 二维数组,存放记录 int main() { // 步骤1: 初始化并连接数据库,获得操作数据库的句柄 mysql_init(&mysql); //初始化 if (!(mysql_real_connect(&mysql, "localhost", "root", "root", "CrashCourse", 0, NULL, 0))) { cout << "Couldn't connect to Database!\n : " << mysql_error(&mysql); exit(1); } else { printf("Database connection succeeded. Connected...\n\n"); } // 步骤2: 执行查询语句,查询需要的数据(设置编码格式也相当于执行特殊的查询语句) mysql_query(&mysql, "set names gbk"); // 设置编码格式 mysql_query(&mysql, "SELECT * from products where prod_price > 30"); // 步骤3:获取结果集 res = mysql_store_result(&mysql); // 步骤4:显示结果集中每行数据 int cols = mysql_num_fields(res); // 计算结果集中,列的个数 while (row = mysql_fetch_row(res)) { for (int i = 0; i < cols; ++i) { cout << row[i] << "\t"; } cout << endl; } // 步骤5:释放结果集合mysql句柄 mysql_free_result(res); mysql_close(&mysql); return 0; }
위 내용은 mysql 데이터베이스에 연결하고 C++에서 데이터를 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!