C/C++连接mysql查询数据

C/C++连接mysql查询数据

Cmake

cmake_minimum_required(VERSION 3.13)
project(readMySQL)

set(CMAKE_CXX_STANDARD 14)



add_executable(readMySQL main.cpp)

set(MYSQL_HOME "C:\\Program Files\\MySQL\\MySQL Server 5.6")

include_directories(${MYSQL_HOME}\\include)

link_directories(${MYSQL_HOME}\\lib)

find_library(LIB_MYSQL NAMES libmysql PATHS ${MYSQL_HOME}\\lib)

target_link_libraries(${PROJECT_NAME} ${LIB_MYSQL})

Code

#include <winsock2.h>
#include <iostream>
#include <mysql.h>
#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib,"libmysql.lib")
int main() {
    MYSQL mysql;
    // 初始化
    mysql_init(&mysql);
    // 连接
    if(mysql_real_connect(&mysql,"localhost","root","123456","test",3306,NULL,0)==NULL)
    {
        std::cerr << "connect fail:" << mysql_errno(&mysql) <<  std::endl;
    }
    // 结果集
    MYSQL_RES *mysqlRes;
    // 行结果
    MYSQL_ROW mysqlRow;
    // 查询SQL
    char sql[] = "select * from newtable";
    // 查询
    mysql_real_query(&mysql,sql,sizeof(sql));
    // 保存查询结果
    mysqlRes = mysql_store_result(&mysql);

    if(mysqlRes==NULL){
        std::cerr << "query fail:" << mysql_errno(&mysql) <<  std::endl;
        exit(1);
    }
    // 获取字段个数
    int fields = mysql_num_fields(mysqlRes);
    // 获取字段信息
    MYSQL_FIELD *fieldDatas = mysql_fetch_fields(mysqlRes);

    // 打印字段
    for (size_t i =0;i<fields;i++)
    {
        std::cout << fieldDatas[i].name<< "\t";
    }
    // 换行
    std::cout << std::endl;
    // 打印数据
    while(mysqlRow=mysql_fetch_row(mysqlRes))
    {
        for (size_t i =0;i<fields;i++)
        {
            std::cout << mysqlRow[i]<< "\t";
        }
        std::cout << std::endl;
    }
    // 释放存储资源
    mysql_free_result(mysqlRes);
    // 关闭连接
    mysql_close(&mysql);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值