C/C++连接MYSQL(巨详)

C/C++中使用MYSQL 首先要保证下载好mysql的库和头文件,头文件在/usr/include/mysql/目录下,库在/usr/lib64/mysql/目录下:一般情况下,在我们安装mysql的时候,这些都提前配置好了,如果没有就重装一下mysql。这些都准备好之后,就可以开始在c语言中使用mysql了! 阅读详情
AI摘要

本文介绍了如何在C/C++环境中,特别是使用Dev-C++和VS,配置MYSQL数据库连接。步骤包括添加MYSQL安装目录的include和lib文件夹到编译器路径,以及将libmysql.dll复制到系统根目录。此外,还提供了C和C++的代码示例,展示数据库连接、初始化、设置字符集、执行查询和关闭连接的基本流程。

首先,C/C++连接MYSQL数据库的思路都是将MYSQL官方提供的工具加入编译器的库或路径(至少是Dev-C++和VS是这样)

那这些工具在哪儿呢?

它们在你MYSQL安装目录的MYSQL Server文件夹下的"include"文件夹和"lib"文件夹中(MYSQL Server路径:C:\Program Files\MySQL\MySQL Server 8.0)

那要怎么把它们加入编译器呢?作者下面就以Dev-C++的添加方法作为样本做一个详细介绍!

环境配置:

首先打开Dev-C++,点击其窗口栏中的"Tools"(工具),再点击其中的"Compiler options"(编译器选项)

然后在打开窗口的第二个大框中添加字符串" -lmysql",像这样

然后点击上面的"Directories"(索引)选项,之后点击里边的"Libraries"(库)选项,然后下面有这样一个添加的小按钮,点击进入文件浏览器,在搜索框中输入

“C:\Program Files\MySQL\MySQL Server 8.0\lib”,点击确定,之后点击它下面的"add"(添加)按钮

然后跳转到隔壁"C Includes",以同样的方法添加一个路径

“C:\Program Files\MySQL\MySQL Server 8.0\include”

之后要不嫌麻烦可以顺带把隔壁的"C++ Includes"一道配了,这样用C++就也能连接MYSQL了

之后点击最下面的"OK"按钮,这样编译器就算是配好了;然后呢,还有最后一步操作:

将之前添加路径时用到的"lib"文件夹下的“libmysql.dll”文件复制粘贴到系统根目录(“C:\Windows”)下,这样整个环境配置工作就算是完整落幕了(鼓掌)

 连接实现:

C/C++连接MYSQL思路:

一、初始化数据库连接句柄

二、连接数据库

三、设置字符集,防止发生乱码

四、设置操作命令

五、设置结果集接收返回结果(并输出)

六、关闭结果集、断开连接

上才艺:

#include <stdio.h>
#include <mysql.h>
int main() {
	char host[10] = "localhost";//端口号 
    char user[10] = "root";//用户 
    char password[10] = "********";//密码 
    char database[10] = "mysql";//数据库 
	
	MYSQL* conn;//设置数据库连接句柄 
    conn = mysql_init(NULL);//初始化连接句柄 
	/*MYSQL conn;
	mysql_init(&conn);*/ 
    if(!conn){
    	puts("初始化失败!");
		return EXIT_FAILURE;
		//exit(1); 
	}
	
	conn = mysql_real_connect(conn,host,user,password,database,0,NULL,0);//连接数据库 
	if(conn)  puts("数据库连接成功!");//判断数据库是否连接成功 
	else{
		printf("数据库连接失败,错误:%s",mysql_error(conn));
		mysql_close(conn);
		return EXIT_FAILURE;
		//exit(1);
	} 
	
	//字符编码,解决乱码
	if(mysql_set_character_set(conn,"GBK"))    puts("字符集设置错误!");
	else    puts("字符集设置成功!"); 
	
	char query[20] = "select * from course";
	if(mysql_query(conn,query))    printf("查询失败,错误:%s\n",mysql_error(conn));
	else    puts("查询成功!");
	
	MYSQL_RES* res;
	res = mysql_use_result(conn);//获取结果
	//res = mysql_store_result(conn);
	MYSQL_ROW row;//设置行结果容器 
	while(row = mysql_fetch_row(res)){//获取行结果 
		for(int t = 0;t < mysql_num_fields(res);t++)//将行结果分列输出 
			printf("%s\t", row[t]);
		printf("\n");
	}
	
	mysql_free_result(res);//释放结果集 
	mysql_close(conn);//关闭数据库连接 
	return 0; 
}

C++版代码:

#include <iostream>
#include <mysql.h>
using namespace std;
int main(int argc, char** argv) {
	char host[10] = "localhost";
    char user[10] = "root";
    char password[10] = "********";
    char database[10] = "mysql";
	
	MYSQL mysql;
	if(!mysql_init(&mysql)){
		cout<<"初始化失败!"<<endl;
		return EXIT_FAILURE;
		//exit(1);
	}
	
	if (mysql_real_connect(&mysql,host,user,password,database,0,NULL,0))
		cout<<"数据库连接成功"<<endl;
	else{ 
		cout<<"数据库连接失败,错误:"<<mysql_error(&mysql)<<endl;
		mysql_close(&mysql);
		return EXIT_FAILURE;
		//exit(1); 
	} 
	
	if(mysql_set_character_set(&mysql,"GBK"))	cout<<"字符集设置错误!"<<endl; 
	else	cout<<"字符集设置成功!"<<endl; 
	
	char query[20] = "select * from c";
	if(mysql_query(&mysql,query))	 cout<<"查询失败,错误:"<<mysql_error(&mysql)<<endl;
	else	cout<<"查询成功!"<<endl;
	
	MYSQL_RES* res;
	res = mysql_store_result(&mysql);
	//res = mysql_use_result(&mysql);
    //如果前边使用的是连接句柄对象,则此处只能使用"mysql_store_result"函数
	MYSQL_ROW row;
	for(int i = 0;i < mysql_num_rows(res);i++){
		row = mysql_fetch_row(res);
		for(int j = 0;j < mysql_num_fields(res);j++)
			cout<<row[j]<<"\t";
		cout<<endl;
	} 
	
	mysql_free_result(res);
	mysql_close(&mysql);
	return 0;
}

VS环境配置:

C++连接并使用MySQL数据库 mysql_field_tell() 返回用于最后一个mysql_fetch_field()的字段光标的位置。mysql_row_seek() 搜索在结果集合中的行,使用从mysql_row_tell()返回的值。mysql_insert_id() 返回有前一个查询为一个AUTO_INCREMENT列生成的ID。mysql_fetch_field_direct () 返回一个表字段的类型,给出一个字段编号。mysql_options() 设置对mysql_connect()的连接选项。 阅读详情

相关推荐

Cpp连接MySQL(使用vs编译器)

本文介绍了如何在Visual Studio环境下使用C++连接MySQL数据库。首先,需要从MySQL官网下载MySQL Connector/C++的debug版本。接着,在VS中配置头文件和库文件路径,包括添加include目录和lib64目录,并设置附加依赖项。配置完成后,通过示例代码演示了如何创建MySQL驱动实例、建立连接、选择数据库、执行查询并打印结果。此外,还简要介绍了如何使用MySQL自带的C接口进行连接,并提供了相应的测试代码。

mo_xiao_yang的博客 686

c++ 连接mysql数据库

使用vs2019对window11中的数据库进行连接。

weixin_62859191的博客 2万+

Windows下C/C++连接MySQL

Windows下C/C++连接MySQL 一、安装MySQL 二、连接MySQL 本例子使用vs2010在Win7系统下连接本机MySQL服务器。 1、用vs2010创建win32控制台应用程序 2、配置工程 2.1、配置头文件 找到MySQL安装目录下的include文件夹: 打开工程配置属性窗口--> C/C++ --> 常规 --> 附加包含目录,把mysql

FightForProgrammer的专栏 1290

【MySQL】C/C++代码操作数据库

简单尝试使用c语言的库对mysql的数据进行增删改查more。

慕雪华年的博客 7153

【C++】开源:MySQL数据库安装与使用

mysql数据库使用

DevFrank的博客 1930

基于Simplis仿真的UC2843芯片建模与关键参数优化指南

本文详细介绍了使用Simplis仿真工具为UC2843 PWM控制器进行行为级建模的方法与关键参数优化实践。通过精确搭建芯片内部振荡器、误差放大器及电流采样等核心模块,工程师可以深入理解其工作原理,并利用模型优化振荡频率、最大占空比及反馈环路等关键参数,从而提升开关电源设计的效率与可靠性。

efc1234567的博客 460

C/C++ 连接访问 MySQL数据库

本篇文章主要讲解使用C语言连接MySQL数据库,当然在C++中也能够使用,因为C++兼容C语言的。 前面我们已经讲述了MySQL的基础使用,现在我们来看一下如何使用语言来操作数据库。在实际开发中,语言连接MySQL是为了能够在编程语言中与MySQL数据库进行交互和操作。大部分情况我们都是通过语言连接MySQL,建立与MySQL数据库的连接,可以向MySQL数据库发送更新请求,如插入、更新或删除数据。

weixin_67596609的博客 4844

卫星动力学仿真模型开发之AI初试

以下是通过AI生成的一个简单的C语言仿真模型,用于模拟卫星的姿态、轨道动力学和运动学。该模型基于基本的物理公式,假设卫星在近地轨道上运行,并忽略了一些复杂的扰动因素(如大气阻力、太阳辐射压等)。姿态动力学描述了卫星绕其质心的旋转运动。轨道动力学描述了卫星在引力作用下的运动。姿态运动学描述了卫星姿态随时间的变化。

xspace的博客 569

【C/C++与MySql的连接及使用详解】

本期主要讲解C或者C++怎么在程序中连接MySql数据库,自己写练手项目必备知识点。

wddkxg的博客 7444

招行收款通SM2加密解密全流程解析:PHP开发者必看

本文详细解析了招商银行收款通服务中SM2加密解密的完整流程,特别针对PHP开发者提供了从密钥管理到签名验签的实战指南。涵盖国密算法基础、PHP环境配置、密钥安全存储及生产环境优化方案,帮助开发者快速实现高安全性的支付系统集成。

weixin_30632089的博客 651

资金穿透分析

我们把准备好的银行数据导入到软件中,导入具体步骤这里不做详解,大家可以通过“清林情报分析师”公众号,查看操作视频第二节

清林情报分析师 3489

【C/C++】VS连接mysql数据库

找到你mysql的安装目录,把MYSQL Server x.x 目录下的 include 目录的路径添加进这个包含目录里。把结果一行一行取出来,用MYSQL_ROW去接收,每次都会获取到下一行的结果,直到没有可以获取的结果,返回NULL。找到你mysql的安装目录,把MYSQL Server x.x 目录下的 lib 目录的路径添加进这个库目录里。因为要遍历,所以要获取每行结果的数量,和字段数是一样的,所以获取长度的函数就是上面那个。第一个参数 mysql :句柄,传入步骤1得到的句柄就行。

m0_63235356的博客 7212

Proxmox VE安装卡顿深度解析:显卡驱动与BIOS设置的黄金法则

本文深度解析Proxmox VE安装卡顿的根本原因,指出显卡驱动与BIOS设置是两大关键因素。文章详细阐述了如何通过添加`nomodeset`内核参数解决显卡兼容性问题,并提供了针对不同主板品牌的BIOS显卡优先级设置黄金法则。同时,还分享了从预处理到高级调试的完整实战排查流程,帮助用户从源头杜绝安装卡顿,确保PVE系统顺利部署。

weixin_29278805的博客 472

C/C++ 连接数据库

先,C/C++连接MYSQL数据库的思路都是将MySQL官方提供的工具加入编译器的库或路径(至少是Dev-C++和VS是这样)

qq_52885411的博客 2231

003:大疆智图新手入门:从下载安装到首次建模实战

本文为大疆智图新手提供从下载安装到首次三维建模的完整实战指南。详细介绍了软件安装的硬件要求、试用许可申请流程,并指导用户如何准备航拍数据或使用开源样例进行首次建模。通过分步操作演示与核心参数设置讲解,帮助初学者快速掌握使用大疆智图进行实景三维重建的核心流程与常见问题解决方案。

t8u9v0的博客 702

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

输入电压采集上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, 由于二极 管的正向导通特性, 用户反接电源时亦不会烧坏后级电路。图中 R8、R9 组成分压电路, 由单片机 AD 采集 IO 口 P14 采集 AD 值, 并由计算公式电压 =133300(AD/4096)mV;

Naiva的博客 1994

【MySQL】C/C++连接MySQL客户端,MySQL函数接口认知,图形化界面进行连接

C/C++连接mysql,mysql函数接口认识讲解,图形化界面方式进行连接

qq_74276498的博客 2001

uniapp [全端兼容] - 详细实现集成接入萤石云摄像头监控示例代码,页面单个或多个九宫格监控画面同时监控播放推流(视频控制方向上下左右移动/调节音量声音/全屏/截屏录制/回放/对讲/切换清晰度)

uni-app,h5移动端网页,小程序,安卓,苹果ios,app,nvue,EZVIZ萤石,uniapp萤石云摄像头监控,uniApp项目集成萤石云详细示例代码,Uniapp中使用萤石云播放视频,使用萤石云播放视频,萤石云实现多窗口监控,展示多个监控画面同时播放,ezuikit.js,云台控制左右移动,莹石摄像头直播视频,萤石视频回放,摄像头黑屏不显示,加载慢报错出错,多个摄像头宫格布局,niapp萤石云视频监控对接,实现海康萤石直播预览、回放、云台控制功能,如何利用萤石实现直播推流回流,实时监控播放,监控

🏆 前端领域优质创作者 1万+

MySQL用C/C++连接

本文介绍了MySQL数据库连接库的下载安装方法以及常用接口的使用。主要内容包括:1)从官网下载MySQL Connector/C++连接库的步骤,或通过apt安装libmysqlclient-dev;2)MySQL C API的基本使用流程,包括初始化连接(mysql_init/mysql_real_connect)、执行SQL语句(mysql_query)和处理查询结果(mysql_store_result等);3)通过示例代码演示了插入数据和查询数据的具体实现;4)简要介绍了MySQL官方图形化管理工具

分享 C/C++、Linux、网络的学习历程与实操心得~ 不追求一蹴而就,只坚持日积月累。未来还将拓展更多技术领域,愿与所有热爱技术的伙伴一起,在探索中成长,在坚持中进步! 820

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MySQL数据库⑪_C/C++连接MySQL_发送请求

MySQL数据库⑪_C/C++连接MySQL_发送请求(下载库文件_使用库)

参考书籍:《C语言程序设计》《数据结构》《C++ Primer》《Effective C++》《STL源码剖析》《现代操作系统》《UNIX环境高级编程》《图解TCP/IP》《图解HTTP》《Linux高性能服务器编程》《剑指Offer》《算法导论》 2053

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【MySQL】使用C/C++语言连接数据库

本文介绍了如何在C/C++开发环境下配置和建立数据库连接。

Edison's 小宇宙 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C/C++连接MySQL

C/C++连接MySQL的基本操作

Dirty_artist的博客 1401

C/C++连接mysql(api接口方法详解)

C/C++采用api接口的方法连接mysql,以及mysql的一些基本数据结构和函数的笔记记录

陈七的博客,学习知识分享,期待与大家的交流 3149

MySQL C/C++ 的 API

我们将实现一个图书馆管理系统,通过控制台界面与用户交互,支持对用户、图书、借阅信息的全面管理。用户角色权限管理(管理员和普通用户)预定与借阅图书的操作图书库存检查与批量入库日志记录(操作记录)数据持久化(本地数据库)

qq_50373827的博客 2004

在 Windows 和 Linux 下使用 C/C++ 连接 MySQL 的详细指南

C/C++ 连接 MySQL

威桑的博客 1507

【MySQL】使用C/C++访问MySQL

【MySQL】C/C++访问MySQL

m0_72563041的博客 3369
上一篇: MYSQL命令
下一篇: 证投の笔记
栈不全
博客等级 码龄5年 173粉丝 152原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值