Clion连接MySQL数据库

一:引入libmysql文件,将两个文件复制到项目的built目录下

在这里插入图片描述
在这里插入图片描述

二:修改相应的CMakeLists.txt文件

注意:地址中有空格的地方一定要使用'\'连接起来!!!这里很容易入坑!!!,CMakeLists.txt这样写就行了,如果地址不一样就改改


cmake_minimum_required(VERSION 3.20)
project(project)

set(CMAKE_CXX_STANDARD 17)

include_directories(C:\\Program\ Files\\MySQL\\MySQL\ Server\ 5.7\\include)
link_directories(C:\\Program\ Files\\MySQL\\MySQL\ Server\ 5.7\\lib)
# 就这么写,不需要改
link_libraries(libmysql) 

add_executable(project main.cpp)

target_link_libraries(project libmysql)

在这里插入图片描述

测试代码:

#include <iostream>
#include <mysql.h>

int main()
{
    MYSQL *conn;
    conn = mysql_init(nullptr);

    const char *host = "localhost";
    const char *password = "密码";
    //连接数据库
    if(!mysql_real_connect(conn,host,"用户名",password,
                           "cliondb",0,nullptr,0)){
        std::cerr << "MySQL connection failed: " << mysql_error(conn) << std::endl;
        return 1;
    }else{
        std::cout << "Connected to MySQL server successfully!" << std::endl;
    }
    //增
    if(mysql_query(conn,"insert into book values('makabaka',null,18,'jianzhe')")){
        std::cerr << "insert failed!" << mysql_error(conn) << std::endl;
    }
    else{
        std::cout << "success!" << std::endl;
    }
    //删
    if(mysql_query(conn,"delete from book where bname = 'makabaka'")){
        std::cerr << "delete failed!" << mysql_error(conn) << std::endl;
    }
    else{
        std::cout << "success!" << std::endl;
    }
    //改
    if (mysql_query(conn, "update book set bname = 'ahaha' where bname = 'xiyouji'")) {
        std::cerr << "Update failed: " << mysql_error(conn) << std::endl;
    } else {
        std::cout << "Update successful!" << std::endl;
    }
    //遍历表数据,方便后续获取结果集
    if(mysql_query(conn,"select * from book")){
        std::cerr << "MySQL query failed: " << mysql_error(conn) << std::endl;
    }else{
        //获取结果集
        MYSQL_RES * res = mysql_store_result(conn);
        if(res){
            // 获取一行数据
            MYSQL_ROW row;
            //mysql_fetch_row() 获取每一列的数据(每一个字段的数据),遍历
            while((row = mysql_fetch_row(res))){
                for(int i = 0; i < mysql_num_fields(res);i++){
                    std::cout << (row[i] ? row[i] : "NULL") << ' ';
                }
                std::cout << std::endl;
            }
            //释放内存
            mysql_free_result(res);
        }
    }
    //关闭连接
    mysql_close(conn);
    return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值