详解MySQL C API 相关接口(大白话就是:MySQL的c语言怎么写)

慈云数据 7个月前 (05-09) 技术支持 42 0

文章目录

      • 1、C API 官方文档
      • 2、初始化 MYSQL
      • 3、连接 MySQL
        • 设置连接字符集(使得客户端编码方式匹配)
        • 4、下发 mysql 指令
        • 5、获取 mysql 查询结果(保存起来)
          • 获取行与列
          • 遍历存储结果
          • 6、释放 MYSQL\_RES 对象
          • 7、关闭 MySQL 连接
          • 8、总结

            1、C API 官方文档

            关于C语言连接数据所涉及到的各种数据结构的介绍以及相关函数的使用其实在 MySQL C API 官方文档中已经给出了,我们可以通过它来快速了解并上手 MySQL C API。

            image-20231029131432088

            image-20231029131530338

            2、初始化 MYSQL

            要使用 MySQL C语言库,需要先使用 mysql_init 函数完成对 MYSQL 结构体指针的初始化工作。

            MYSQL *mysql_init(MYSQL *mysql)
            
            • 函数返回值:失败返回 NULL。

              注意:mysql_init 函数的参数以及返回值都是 MYSQL 指针类型,对于 MYSQL,大家把它类比到C语言中的文件指针来理解即可。MYSQL 和C语言文件 FILE 一样,本质上都是一个结构体。

              image-20231029133239373

              image-20231029133254539

              MYSQL *mfp = mysql_init(nullptr); if(mfp == nullptr) { cerr 
                      cout  cout 
                      //MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
                      MYSQL_ROW row=mysql_fetch_row(res);
                      for(int i=0;i
                          cout 
                  1.初始化MySQL句柄
                  MYSQL* mysql = mysql_init(nullptr);//MYSQL *mysql_init(MYSQL *mysql) 传空 那么就是堆上申请空间
                  //MYSQL 和C语言文件 FILE 一样,本质上都是一个结构体 所以mysql就相当于是结构体创建的节点 
                  //类似于 ListNode* node
                  if(mysql==nullptr)
                  {
                      cout 
                      cout 
                      cout 
                      cout 
                      mysql_close(mysql);
                      return -1;
                  }
                  //7.获取行数与列数
                  //unsigned int mysql_num_fields(MYSQL_RES *result)
                  //unsigned int mysql_num_rows(MYSQL_RES *result)
                  int num_row=mysql_num_rows(res);//res是上面用mysql_store_result获取出来保存进去的结果
                  int num_col=mysql_num_fields(res);
                  //8.遍历读取数据
                  for(int i=0;i
                      //MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
                      MYSQL_ROW row=mysql_fetch_row(res);
                      for(int i=0;i
                          cout 
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon