当前位置: 首页 > news >正文

C++连接MySQL完整教程

文章目录

文章目录

1.前言

 2.配置

3.代码

4.广告(不想看的,点赞+关注就可以走了)


1.前言

网友:MySQL是煞?

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

网友:C++是煞? 

答:你怎么那么多废话!  


 2.配置

废话不多说,进入正文。

本文以Dev C++为例进行配置。

还有,本文默认你已安装MYSQL。

(1)打开工具 > 编译选项 > 目录 > C++包含文件 添加如下路径:

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

8.0是我的MYSQL版本,各位根据自己的MYSQL版本来填写。

(2)在目录页面打开添加如下路径:

C:\Program Files\MySQL\MySQL Server 8.0\lib

 8.0是我的MYSQL版本,各位根据自己的MYSQL版本来填写。

(3)然后把选项卡切换到编译器在第二个框(连接器)里面输入如下指令:

-lmysql

(4)找到C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib然后复制到该项目的文件夹下,以免编译器眼瞎找不到libmysql.lib

(5)给代码加上头文件:

#include <mysql.h>

3.代码

首先,我们要初始化连接(NULL代表默认)

MYSQL* conn = mysql_init(NULL);

然后,我们就要用到mysql_real_connect()函数,结构如下:

mysql_real_connect(conn,  host, user, password, dbtest, port, unix_socket, client_flag)

用法如下 (注:mysql_error()函数是获取错误信息的)

if (!mysql_real_connect(conn, "localhost", "admin", "12345", "bilin", 3307, NULL, 0)) {std::cerr << "连接失败: " << mysql_error(conn) << std::endl;return 1;}std::cout << "成功连接MySQL!" << std::endl;

 然后不要忘记使用mysql_close()函数关闭数据库

mysql_close(conn); 

完整代码如下: 

#include <mysql.h>
#include <iostream>int main() {MYSQL* conn = mysql_init(NULL);if (!mysql_real_connect(conn, "localhost", "admin", "12345", "bilin", 3307, NULL, 0)) {std::cerr << "连接失败: " << mysql_error(conn) << std::endl;return 1;}std::cout << "成功连接MySQL!" << std::endl;/*执行mysql操作*/mysql_close(conn);return 0;
}

mysql.h还包含很多控制mysql的函数:

函数作用
mysql_init()初始化连接句柄
mysql_real_connect()建立数据库连接(需8个参数)
mysql_query()执行SQL语句(增删改)
mysql_store_result()获取SELECT查询结果集
mysql_fetch_row()逐行读取结果数据
mysql_free_result()释放结果集内存
mysql_close()关闭连接

4.广告(不想看的,点赞+关注就可以走了)

 我开发的一个软件bito在最近的1.2.0版本加入了对mysql的控制,我在gitcode上放了源代码,有兴趣的可以去下载看看。然后支持一下,给个Star。^v^

项目连接:https://gitcode.com/BilinStudio/BilinTools.git


http://www.xdnf.cn/news/1191025.html

相关文章:

  • 智慧水库边缘计算技术路线与框架设计
  • C++五子棋
  • javaSE 6
  • AI使能的SVD算子:基于深度学习的矩阵分解方法
  • connect系统调用及示例
  • 数字化转型 - 企业数字化建设的几点思考
  • sqli-labs通关笔记-第21关 字符型Header-Cookie SQL注入(单引号括号闭合 base64编码绕过 手工注入+脚本注入两种方法)
  • Oracle 11g RAC数据库实例重启的两种方式
  • Linux权限机制:RUID/EUID/SUID与进程安全
  • 服务器之光:Nginx--核心配置详解及演练
  • 【AI论文】MiroMind-M1:通过情境感知多阶段策略优化实现数学推理的开源新进展
  • Golang语言基础—函数调用
  • Spring Cloud Gateway:微服务架构下的 API 网关详解
  • Java,八股,cv,算法——双非研0四修之路day16
  • PYTHON从入门到实践-16数据视图化展示
  • Docker的简单使用
  • 【C++】定义常量
  • 图片查重从设计到实现(5)Milvus可视化工具
  • 嵌入式硬件篇---zigbee无线串口通信问题
  • Python - 100天从新手到大师 - Day6
  • 【Redis】Linux 配置Redis
  • 从零开始的云计算生活——第三十六天,山雨欲来,Ansible入门
  • [Python 基础课程]注释
  • Flowable 实战落地核心:选型决策与坑点破解
  • uniapp 自定义tab栏切换
  • 全球化2.0 | 云轴科技ZStack亮相阿里云印尼国有企业CXO专家活动
  • 数据结构预备知识
  • JavaWeb01——基础标签及样式(黑马视频笔记)
  • 伟淼科技李志伟:破解二代接班传承困局,系统性方案破除三代魔咒
  • mysql查找数据库表中某几个连续的编号中中断的编号