欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 关于C/C++Windows下连接MYSQL操作

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

2025/5/15 20:17:23 来源:https://blog.csdn.net/qq_52646857/article/details/143942947  浏览:    关键词:关于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 MySqlLIBRARY 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.结果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词