关于C/C++Windows下连接MYSQL操作

1.标准目录

2.cmakeList.txt

复制代码
cmake_minimum_required(VERSION 3.16)

project(MySql LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 设置运行时库路径
set(CMAKE_INSTALL_RPATH "C:/Program Files/MySQL/MySQL Server 8.0/lib")
include_directories("C:/Program Files/MySQL/MySQL Server 8.0/include")
# target_link_libraries(MySql "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib")
# 查找指定目录下的所有库文件(这里假设库文件以.lib结尾)
file(GLOB LIB_FILES "C:/Program Files/MySQL/MySQL Server 8.0/lib/*.lib")
# 遍历并链接找到的库文件
foreach(LIB_FILE ${LIB_FILES})
    target_link_libraries(MySql ${LIB_FILE})
endforeach()

add_executable(MySql main.cpp)

include(GNUInstallDirs)
install(TARGETS MySql
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

拷贝C:/Program Files/MySQL/MySQL Server 8.0/lib下文件到可执行程序下

3.测试代码

复制代码
#include <iostream>

#include"mysql.h"

using namespace std;

int main()
{
    cout << "mysq version:" <<mysql_get_client_info()<< endl;

    // 初始化MySQL连接对象
    MYSQL *conn = mysql_init(NULL);
    if (conn == NULL) {
        std::cerr << "mysql_init() failed" << std::endl;
        return 1;
    }
    // 连接到MySQL数据库
    if (mysql_real_connect(conn, "localhost", "root", "123456", "db01", 0, NULL, 0)== NULL) {
        std::cerr << "mysql_real_connect() failed: " << mysql_error(conn) << std::endl;
        mysql_close(conn);
        return 1;
    }
    // 执行查询语句
    if (mysql_query(conn, "SELECT * FROM tb_user")) {
        std::cerr << "mysql_query() failed: " << mysql_error(conn) << std::endl;
        mysql_close(conn);
        return 1;
    }
    // 获取结果集
    MYSQL_RES *result = mysql_store_result(conn);
    if (result == NULL) {
        std::cerr << "mysql_store_result() failed: " << mysql_error(conn) << std::endl;
        mysql_close(conn);
        return 1;
    }
    // 获取结果集中的行数和列数
    int num_fields = mysql_num_fields(result);
    MYSQL_ROW row;
    while ((row = mysql_fetch_row(result))) {\

        for (int i = 0; i < num_fields; i++) {
            std::cout << row[i] << " ";
        }
        std::cout << std::endl;
    }
    // 释放结果集内存
    mysql_free_result(result);
    // 关闭数据库连接
    mysql_close(conn);
    return 0;
}

4.结果

相关推荐
政安晨18 分钟前
【嵌入式人工智能产品开发实战】(二十)—— 政安晨:小智AI嵌入式终端代码解读:【B】小智AI嵌入式终端OTA升级功能深度解析
c++·人工智能·嵌入式·ota·小智ai·代码解读·ai聊天助手
槐月杰5 小时前
入门到精通,C语言十大经典程序
c语言·数据结构·算法
a东方青6 小时前
[16届蓝桥杯 2025 c++省 B] 移动距离
c++·算法·蓝桥杯
FreeLikeTheWind.8 小时前
Qt问题之 告别软件因系统默认中文输入法导致错误退出的烦恼
开发语言·c++·windows·经验分享·qt
wyk123_0468 小时前
Windows 部署项目 apache + mod_wsgi,nginx + waitress
windows·nginx
墨燃.8 小时前
Windows操作系统渗透测试
windows·web安全·网络安全·职业院校技能大赛
爱看书的小沐8 小时前
【小沐学GIS】基于C++绘制三维数字地球Earth(QT5、OpenGL、GIS、卫星)第五期
c++·qt·opengl·imgui·地球·卫星·gis地球
小文数模8 小时前
2025年认证杯数学建模C题完整分析论文(共39页)(含模型、可运行代码)
c语言·开发语言·数学建模
天堂的恶魔9468 小时前
C++项目 —— 基于多设计模式下的同步&异步日志系统(1)
c++
[太阳]889 小时前
Spark Core
linux·windows·python