mysql CAPI与C++的交互

本文介绍了如何使用MySQL的CAPI库与C++进行交互,包括安装步骤、基本操作如连接数据库、执行查询、增删改查等。在C++中,需先包含`windows.h`再包含`mysql.h`以避免编译错误。示例代码展示了如何进行查询、更新、删除和插入操作。
摘要由CSDN通过智能技术生成

首先要保证mysql的服务是开启的才能进行对数据库的操作。

mysql与C++交互有两个非常好的三方库一个是mysql++,一个是connector/C++,这两个库我尝试了mysql++不过我发现在中国mysql++的很多资料缺乏,很多都是讲了一半剩下的就没了,除非去看英文文档,可惜我英文不算好,所以我果断先放弃试用三方库还是老老实实的用用mysql官方的Capi库。

 

1、下载mysql server,把其中的include和lib拷贝到你的工程项目里,并引用。

2、在进行数据库操作的时候我们需要声明一个MYSQL 的数据结构,要包含mysql.h,但是你突然发现会出现编译报错,原来mysql.h里引用了windows.h的一些东西,所以你要先包含windows.h才能正常使用mysql CAPI.

 

#include <windows.h>

#include"mysql.h"

 

 

void main()

{

     MYSQL mySql;

 

     我们必须先调用mysql的初始化

     mysql_init(&mysql);

    

     然后再连接数据库

    char* hostIp="127.0.0.1";这个不用我说了吧

   char* userName="root";默认的数据库用户名,可以自定义

    char* pwd="1";用户密码

    char* port=“3306”;端口名

    char* dbName="demo";数据库名

     mysql_real_connect(&mySql,hostIp,userName,pwd,dbName,port,NULL,0);

     链接数据库,返回MYSQL的指针,最后两个参数依次为连接类型,MySQL运行成ODBC数据库的标记。

 

     现在我们进行增、删、改、查的基本操作

     查询

     char* query="select * from demo.temp";由于我没有先使用use 数据库名,所以需要用数据库名来引用表名

     mysql_real_query(&mySql,query,(unsinged long)strlen(query)); 

    执行之后会产生一个结果集

     MYSQL_RES* res;

     mysql_use_result(res);返回查询的结果集也可使用mysql_store_result(MYSQL_RES*)区别请参考官方手册

http://dev.mysql.com/doc/refman/5.1/zh/apis.html#c-api-function-overview

    

通过循环检索每一行读出每行数据

     MYSQL_ROW row;

     while((row=mysql_fetch_row(res))!=NULL)
    {
          for (int i=0;i<mysql_num_fields(res);i++)
         {
             cout<<row[i]<<endl;
         }
    }

    注意每次使用完结果集时,请释放结果集

    mysql_free_result(res);

     修改

      queryTemp="update demo.temp set xxxx=xxxx where id=xx";
      int isSuccse=mysql_real_query(&mySql,queryTemp,(unsigned long)strlen(queryTemp));
      if (isSuccse)
      {
         cout<<"错误"<<endl;
      }

      删除

      queryTemp="delete from demo.temp where id=xx";

      同上

      增加

    

      queryTemp="insert demo.temp values(id,xx,xxx)";

      同上

}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值