mysql CAPI与C++的交互
首先要保证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数据库与go进行交互
database/sql database/sql是golang的标准库之一,它提供了一系列接口方法,用于访问关系数据库.它并不会提供数据库特有的方法,那些特有的方法交给数据库驱动去实现. datab ...
- 周四见-王晓伟 |MySQL与数据仓库的数据交互
周四见 公开课系列 We,知数堂 习惯用实力介绍自己-我们只分享干货 重磅福利来袭 2018年7月12日,20:30-22:00 周四见 不见不散! 主讲嘉宾:王晓伟 知数堂<大数据实战 ...
- python 与Mysql ,Mongodb以及Redis的交互
1. Python 与Mysql的交互 首先python 与 mysql的交互要依赖于第三方模块pymysql,所有先安装pymysql pip install pymysql 然后实现用python ...
- mysql capi函数详解_技术分享|MySQLCAPI参数MYSQL_OPT_READ_TIMEOUT的一些行为分析
作者:戴岳兵 MYSQL_OPT_READ_TIMEOUT 是 MySQL c api 客户端中用来设置读取超时时间的参数.在 MySQL 的官方文档中,该参数的描述是这样的: MYSQL_OPT_R ...
- mysql capi函数详解_CAPI函数描述(A-F)
25.2.3.1. mysql_affected_rows() my_ulonglong mysql_affected_rows(MYSQL *mysql) 描述 返回上次UPDATE更改的行数,上次 ...
- mysql capi函数详解_CAPI函数描述(G-N)
25.2.3.26. mysql_get_character_set_info() void mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET ...
- Mysql 增删改查 Python交互01
1. 数据库 - 1. 数据库 :存储数据的仓库 - 2. 数据库软件分类 :* 1. MySQL,Oracle,SQL Server,MongoDB,DB2,MariaDB,Redis...* 2. ...
- Slog3_如何使用Python与Mysql进行数据交互
ArthurSlog SLog-3 Year·1 Guangzhou·China July 9th 2018 自己的梦想需要你自己去实现 开发环境MacOS(High Sierra 10.13.5) ...
- mysql历史命令_MySQL交互技巧
本文介绍一些与客户端程序mysql进行交互的技巧,这些技巧能帮助我们更有效率地使用它,减少文字输入.此外,还会描述"怎样更加方便地连接到服务器",以及"如何在不经手工输入 ...
最新文章
- spring单元测试
- 打包caddy为docker镜像
- 安卓ps2模拟器_安卓PSP模拟器评测:合金装备 和平步行者
- IntelliJ IDEA for Windows 默认模式下的快捷键
- 演示:外部全局地址与外部局部地址的使用案例
- 3D游戏建模就是那么简单
- C++_类和对象_对象特性_拷贝构造函数调用时机---C++语言工作笔记042
- 2022电大国家开放大学网上形考任务-劳动与社会保障法非免费(非答案)
- Sublime增加GBK编码格式
- php万能密码在线视频讲解,万能密码
- 界面音效以及3D音效通过参数控制声音加载声音资源包
- ADS1256驱动程序
- 1949年的国庆节(10月1日)是星期六.......
- 基于SpringBoot生鲜商城
- 【C#】记录一次上位机软件界面闪退分析及解决方案
- DSP/DMP/SSP/RTB概念解释
- 相机拍照时预览卡顿问题
- 《HTML5 Canvas学习笔记(10)》数钱数到手抽筋
- CSS禅意花园——CSS设计的绝美境界
- 程序员刚入职很痛苦_程序员做梦都会笑醒的10件事