当前位置: 首页 > 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.dtcms.com/a/299350.html

相关文章:

  • 哪些人需要用到MBTI职业性格测试?
  • c#Lambda 表达式与事件核心知识点整理
  • 对比JS“上下文”与“作用域”
  • 网络资源模板--基于Android Studio 实现的简易购物App
  • 变频器实习DAY15
  • 地级市-生态韧性数据(2000-2022年)-实证数据
  • VTK交互——Callback
  • MySQL 8.0 OCP 1Z0-908 题目解析(36)
  • 【Redis】 Redis 基础命令和原理
  • 前端设计中如何在鼠标悬浮时同步修改块内样式
  • LeetCode 895:最大频率栈
  • HTML初学者第五天
  • 计算机编码
  • Linux权限机制:RUID/EUID/SUID与进程安全
  • 排序算法,咕咕咕
  • 【Zephyr】Window下的Zephyr编译和使用
  • window下MySQL安装(三)卸载mysql
  • PYTHON从入门到实践-16数据视图化展示
  • Rust Web框架性能对比与实战指南
  • 数据结构 二叉树(3)---层序遍历二叉树
  • SQLite 子查询详解
  • 告别复杂配置!Spring Boot优雅集成百度OCR的终极方案
  • C语言基础10——函数
  • Qt 与 WebService 交互开发
  • Linux学习 韦东山IMX6ULL(一)搭建环境并编译程序
  • SQL Developer Data Modeler:一款免费跨平台的数据库建模工具
  • 强化学习(第三课第三周)
  • Rust赋能土木工程数字化
  • AUTOSAR进阶图解==>AUTOSAR_SRS_TimeService
  • Raft 协议 Paxos协议 和zk协议的特点和异同