mysql CAPI与C++的交互
来源:互联网 发布:java jdk环境配置 编辑:程序博客网 时间:2024/05/21 11:02
首先要保证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)";
同上
}
- mysql CAPI与C++的交互
- mysql 的capi预处理
- c语言与lua交互(capi)介绍, lua调用C语言函数详解(一)
- c语言与lua交互(capi)介绍, lua调用C语言函数详解(二)
- c++ 与 lua 简单交互1 (LUA CAPI)
- mysql的C-API交互函数与类型表
- mysql CAPI 接口 读取中文乱码的解决方案
- lua与CAPI概述
- 与mysql交互的技巧
- NodeJS与Mysql的交互
- Spark与Mysql的交互
- MySQL与Python的交互
- python与Mysql的交互
- mysql与python的交互
- CAPI
- CAPI
- java与c的交互
- lua 与c的交互
- MFC中文件读写操作
- ddms截屏
- 六级学习笔记(1)
- 面向对象设计的原则
- C/C++ 核心之一 指针与数组
- mysql CAPI与C++的交互
- 简单Case函数应用
- 一个经典的makefile文件,该文件为PF_RING的makefile
- 一个困扰很久的问题【description The server encountered an internal error () that prevented it from fulfilling this request】
- 生活随笔:师弟,加油
- explicit 和构造函数一起使用
- 细说业务逻辑
- SQL 中 sp_executesql 存储过程
- C#如何取得类中所有静态属性的值