当前位置: 首页 > 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.lryc.cn/news/600709.html

相关文章:

  • easy-llm-cli的安装和使用
  • Ubuntu安装node-red
  • 广东省省考备考(第五十七天7.26)——数量、言语(强化训练)
  • 【CTF-PWN】【攻防世界题目pwnstack】python攻击脚本ret(checksec、pwngdb、IDA)(含“/bin/sh“)
  • Traffic Lights set的使用
  • AI Agent开发学习系列 - langchain之LCEL(5):如何创建一个Agent?
  • Ansible列出常见操作系统的发行版,Ansible中使用facts变量的两种方式
  • 定义域第一题
  • InfluxDB Flux 查询协议实战应用(二)
  • 修改site-packages位置与pip配置
  • 网络:应用层
  • docker安装问题汇总
  • 一文速通《多元函数微分学》
  • AI Agent开发学习系列 - langchain之LCEL(4):Memory
  • x86汇编语言入门基础(三)汇编指令篇5 串操作
  • 【架构】Docker简单认知构建
  • JAVA学习-练习试用Java实现“深度优先搜索(DFS):实现八数码问题的解法(最短路径搜索)”
  • LangChain4j低阶+高阶Api+日志配置+监听器+重试机制+超时机制
  • 【LeetCode 热题 100】131. 分割回文串——回溯
  • 算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现
  • Android-广播详解
  • golang实现一个定时引擎,功能包括按照corntab的时间任务实时增加、修改、删除定时任务
  • 常见sql深入优化( 二)
  • 一文学会c++list
  • 激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定
  • 二叉搜索树(Binary Search Tree)详解与java实现
  • Linux 如何统计系统上各个用户登录(或者登出)记录出现的次数?
  • Android-三种持久化方式详解
  • 摘录-打造第二大脑
  • J2EE模式---表现层集成模式