1.mysql API의 헤더 파일이 포함되어야 합니다
로컬 mysql 데이터베이스에 연결해야 하는 경우 mysql 데이터베이스가 로컬에 설치되어 있어야 한다는 전제가 있습니다. 여기에는 데이터베이스 연결, 쿼리 문 실행 및 기타 작업과 같은 일부 mysql API가 사용됩니다.
#include <mysql/mysql.h>
2. mysql에 연결하는 구체적인 단계는 다음과 같이 나눌 수 있습니다. 네 가지 주요 단계:
1. mysql 데이터베이스에 연결
1. mysql 데이터베이스에 연결
물론 mysql 데이터에 있는 데이터를 얻으려면 먼저 데이터베이스에 연결하고 해당 작업을 수행할 수 있는 핸들을 얻어야 합니다. 데이터 베이스.
2. 쿼리문을 실행합니다. 즉, 필요한 데이터를 선택합니다.
는 쿼리문을 실행하여 필요한 데이터를 쿼리하는 것입니다. 쿼리된 데이터는 결과 집합이라는 위치에 저장됩니다.
3. 결과 집합에서 필요한 데이터 가져오기
관련 인터페이스 기능을 사용하여 결과 집합의 각 행과 필드의 데이터를 가져옵니다.
4. 결과 세트에서 각 행의 각 필드 정보를 추출합니다.
5. 결과 세트의 mysql 핸들을 포함한 리소스를 해제합니다.
다음은 사용해야 하는 몇 가지 주요 인터페이스 기능에 대한 자세한 설명입니다.
2.1 mysql_real_connect
이 함수는 호스트에서 실행 중인 데이터베이스 엔진에 연결하는 데 사용됩니다. 연결에 성공하면 데이터베이스를 작동할 수 있는 핸들을 획득하고, 그렇지 않으면 NULL 포인터를 반환합니다.
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 구조의 주소입니다. mysql_real_connect()를 호출하기 전에 mysql_init()를 호출하여 MYSQL 구조를 초기화해야 합니다.
- host
: 호스트 이름 또는 IP 주소입니다. "host"가 NULL이거나 문자열 "localhost"인 경우 연결은 localhost에 대한 연결로 처리됩니다.
- user
: 사용자의 MySQL 로그인 ID입니다. "user"가 NULL이거나 빈 문자열 ""인 경우 해당 사용자는 현재 사용자로 간주됩니다.
- passwd
: 사용자의 비밀번호. "passwd"가 NULL이면 사용자의 사용자 테이블에 있는 항목(비어 있는 비밀번호 필드가 있음)만 일치하는지 확인됩니다.
- db
: 데이터베이스 이름입니다. db가 NULL이면 연결은 기본 데이터베이스를 이 값으로 설정합니다.
- port
: "port"가 0이 아닌 경우 해당 값은 TCP/IP 연결을 위한 포트 번호로 사용됩니다. "host" 매개변수는 연결 유형을 결정합니다.
- unix_socket
: unix_socket이 NULL이 아닌 경우 이 문자열은 사용해야 하는 소켓 또는 명명된 파이프를 설명합니다. "host" 매개변수는 연결 유형을 결정합니다.
- client_flag
: 값은 일반적으로 0
2.2 mysql_query 또는 mysql_real_query
이 함수는 쿼리 명령을 데이터베이스에 보내고 데이터베이스가 실행하도록 하는 데 사용됩니다. 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: 을 통해 얻은 mysql 작업 핸들입니다.
- stmt_str: 실행해야 할 쿼리문을 나타냅니다.
- length: 쿼리 문의 길이입니다.
- 위 두 함수의 차이점은 다음과 같습니다.
- mysql_query()는 바이너리 문을 실행하는 데 사용할 수 없습니다. 즉, 매개변수 stmt_str에 바이너리 데이터가 있을 수 없으며 문자로 구문 분석됩니다.
- mysql_query는 쿼리 문의 길이를 계산해야 하기 때문에 약간 느립니다.
- 2.3 결과 세트 가져오기 mysql_store_result
이 함수는 쿼리가 성공하면 결과 세트를 반환하고, 실패하면 NULL을 반환합니다.
MYSQL_RES *mysql_store_result(MYSQL *mysql)
2.4 결과 집합 표시 데이터의 각 행
이 함수의 입력 매개 변수는 단계 (3)에서 반환된 결과 집합입니다. 호출될 때마다 결과 집합의 다음 데이터 행이 반환되고 포인터는 한 행씩 뒤로 이동합니다. 다음 데이터 행이 없으면 NULL이 반환됩니다.
mysql_num_fields(result)를 사용하여 결과 집합의 행 수를 계산할 수 있고, mysql_num_fields(result)를 사용하여 열 수를 계산할 수 있습니다. row가 특정 행의 정보라면 row[0], row[1]이 됩니다. . . 행의 각 필드 정보입니다.MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
3. 프로그래밍 예제
여기의 환경은 Linux 시스템입니다. 사용된 로컬 데이터베이스의 이름은 CrashCourse이고 쿼리 테이블의 이름은 products입니다. 다음 프로그래밍 예제에서는 제품 테이블에서 가격이 30보다 큰 모든 항목을 쿼리하는 방법을 보여줍니다. 제품 테이블의 전체 내용은 다음과 같습니다.
#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
