ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

连接mysql的c++代码段

2021-03-05 15:02:20  阅读:149  来源: 互联网

标签:int fields 代码段 c++ num result mysql row


#include<bits/stdc++.h>
#include<mysql/mysql.h>

using namespace std;

int main()
{
    if(mysql_library_init(0,NULL,NULL)){
        cout<<"hhh"<<endl;
        exit(-1);// 初始化数据库
    } 
    MYSQL mysql;
    mysql_init(&mysql); //初始化一个连接句柄

    unsigned int timeout = 3000;
    mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, &timeout); //设置超时
    
    if (!mysql_real_connect(&mysql, "localhost", "root", "@Luwc1009", "test", 0, NULL, 0))
    {
        std::cout << "Error: connect mysql failed: " << mysql_error(&mysql) << std::endl;
        mysql_close(&mysql);
        return -1;
    }
    
    char* stmt = const_cast<char*>("select * from people");
    int length = strlen(stmt);
    if (mysql_real_query(&mysql, stmt, length))
    {
        printf("mysql_real_query error\n");
        return 0;
    }
    MYSQL_RES *result;
    MYSQL_ROW row;
    unsigned int num_fields;
    unsigned int num_rows;
    result = mysql_store_result(&mysql);
    if (result)
    {
        num_fields = mysql_num_fields(result); //这里获取结果集中的列数
        printf("num_fields = %d\n", num_fields);
        while((row = mysql_fetch_row(result))) //遍历结果集中每一行
        {
            unsigned long *lengths;
            lengths = mysql_fetch_lengths(result); //获取每个字段的实际长度
            for (unsigned int i = 0;  i < num_fields; ++i) //输出每个字段
            {
                printf("%s ", row[i] ? row[i] : NULL);
            }
        }
        printf("\n");
    }
    mysql_free_result(result); //释放内存
    mysql_close(&mysql);
    mysql_library_end();
}

编译命令是:g++ -g main2.cpp -o test mysql_config --cflags --libs

标签:int,fields,代码段,c++,num,result,mysql,row
来源: https://blog.csdn.net/weixin_38258767/article/details/114396591

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有