c++ cmake操作mysql

在mysql源码文件夹下创建MySQLConfig.cmake文件

set(MySQL_INCLUDE_DIRS /opt/mysql/include)
file(GLOB MySQL_LIBS /opt/mysql/lib/lib*.so)

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0)		# CMake最低版本要求,低于2.6的构建过程会被终止set(CMAKE_CXX_STANDARD 14)		#opencv4以上加此句
set(CMAKE_CXX_STANDARD  14)
project(mysql_test)				# 定义工程名称
find_package(MySQL      REQUIRED)
include_directories(
                    ${MySQL_INCLUDE_DIRS}
                    )
add_executable(mysql_test src/main.cpp)	# 生成一个叫 cmake_test的可执行文件,其中可执行源文件路径为 src/main.cpp
target_link_libraries( cmake_test 
                        ${MySQL_LIBS}) # 链接库

main.cpp

#include 
#include 

int main() {
    // 初始化MySQL连接
    MYSQL mysql;
    mysql_init(&mysql);

    // 连接到MySQL服务器
    if (!mysql_real_connect(&mysql, "localhost", "root", "passwd", "sys", 0, "/home/.mysql/run/mysql.sock", 0)) 
    {
        std::cerr << "Failed to connect to database: " << mysql_error(&mysql) << std::endl;
        return 1;
    }

    // 执行查询
    if (mysql_query(&mysql, "SELECT * FROM sys_config")) 
    {
        std::cerr << "Failed to execute query: " << mysql_error(&mysql) << std::endl;
        return 1;
    }

    // 获取查询结果
    MYSQL_RES* result = mysql_store_result(&mysql);
    if (result == NULL) 
    {
        std::cerr << "Failed to get result: " << mysql_error(&mysql) << std::endl;
        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连接
    mysql_close(&mysql);

    return 0;
}

你可能感兴趣的:(c++,mysql,adb)