c++连接mysql数据库(使用mysql api方式,环境VS2013+MYSQL5.6)
转载请注明出处,原文地址http://www.cnblogs.com/zenki-kong/p/4382657.html
刚开始写博客,博主还只是个大三汪,学艺不精,如有错误还请前辈指出(>^ω^<),废话不多说啦,进入正文
下一篇博客应该会讲使用mysql connector c++来让c++连接mysql,本篇是直接使用mysql api
首先交代一下开发环境,64位mysql5.6.23+VS2013+WIN7旗舰版
一开始用mysql5.7.6提示缺少binary_log_types.h,搜了整个文件夹都没这个文件,于是就用5.6吧
1.要使用mysql的api,需要mysql目录下include和lib两个文件夹的东西,如果你用的是wamp或者phpstudy,里面的mysql可能没这两个文件夹,那么去下个解压版的mysql就可以了,我用的是64位的mysql5.6.23安装版
2.这点很重要,先提前把这个说了
博主一开始就卡在这里,就说怎么编译不通过呢(ㄒoㄒ)//,各种无法解析外部符号,研究了半天,发现原因在于数据库是64位版的,而程序平台是32位的(毕竟我开发经验没多少……(>﹏<))。所以我们要先设置一下平台,如果你是32位的数据库,大概可以跳过这步。
有上角 活动解决方案平台 点新建

3.在vs2013中打开项目-属性,把include和lib两个文件夹包含进来,具体路径看个人吧,如果你是安装版,就在mysql server根目录下(我是直接安装在mysql根目录)。如果你是包含了之后再改64位/32位平台,可能要重新包含一次,所以我提前说了平台问题。
先来看看这两个文件夹有啥


然后包含进来

4.把lib文件夹里的 libmysql.dll 复制到你的项目目录中(就是放h和cpp的那里)
5.外面的事情解决完了,最后就是代码了
首先是要包含的头文件和库,听说头文件顺序交换会有问题,你们可以试试,因为我项目本身很早就包含了winsock2.h,就不试拉,我也很懒的(^。^)y-~~
#include <WinSock2.h>
#include "mysql.h"
#pragma comment(lib,"wsock32.lib")
#pragma comment(lib,"libmysql.lib")
然后就是测试用的主要代码,当然测试之前你需要建立一个表,类和函数使用之类就自行度娘查吧。。。其实也很显然易懂
定义三个变量
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
然后是数据库操作的代码
mysql_init(&mysql);
mysql_real_connect(&mysql, "localhost", "root", "root", "dnd", , NULL, );
char *sql = "select * from user";//unicode下用Cstring会很麻烦,直接用char
mysql_query(&mysql, sql);
result = mysql_store_result(&mysql);
while ((row = mysql_fetch_row(result))!=NULL)
{
ShowText(row[]);//这里是个显示的函数,控制台可以用cout
}
上面的代码,没有过多的错误检测,因为几行代码而已,有问题的话注释测测吧,可以使用
unicode下用Cstring会很麻烦,直接转换类型是不行的(只会保留第一个字符),于是查询语句就出错咯
顺便问一个问题,这句会造成内存泄漏吗(我当然是知道答案的哈,就当是考一下初学者,大神就无视吧哈)
char *sql = "select * from user";
sql="I am Zenki Kong"//那加多这一句呢?会不会造成内存泄漏?
至此,如无意外就成功了!!!
但是个人感觉使用connector连接用起来更加方便,所以写完这个博客后我已经开始着手了,如果成功我也会写博客,有兴趣的同学可以留意一下。
目前了解到C++连接mysql的方法有三种,ado、直接使用mysql api还有就是connector c++
顺便问一下路过的大神,不同的连接方式对数据库的效率有影响吗?请问哪一种效率最高?
c++连接mysql数据库(使用mysql api方式,环境VS2013+MYSQL5.6)的更多相关文章
- mysql数据库的十种查询方式及多表查询
--mysql数据库的十种查询方式 -- (1)查询时起别名 SELECT id AS '编号',NAME AS '姓名',age AS '年龄' FROM student; -- (2)查询时添加常 ...
- ref:详解MYSQL数据库密码的加密方式及破解方法
ref:https://blog.csdn.net/paul123456789io/article/details/53081921 MySQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中 ...
- Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...
- 【MySQL 数据库】MySQL目录
目录 [第一章]MySQL数据概述 [第二章]MySQL数据库基于Centos7.3-部署 [MySQL解惑笔记]Centos7下卸载彻底MySQL数据库 [MySQL解惑笔记]忘记MySQL数据库密 ...
- CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇
CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...
- plsql 连接oracle数据库的2种方式
plsql 连接oracle数据库的2种方式 CreationTime--2018年8月10日09点50分 Author:Marydon 方式一:配置tnsnames.ora 该文件在instan ...
- VC++6.0连接MySQL数据库(MySQL API)
一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本..二.VC6.0的设置(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案. P ...
- PHP连接MySQL数据库的几种方式
PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi :MySQLi 只针对 MySQL 数据库,MySQLi 还提供了 API 接口. PDO (PHP Data Objects ...
- php连接MySQL数据库的三种方式(mysql/mysqli/pdo)
引言 PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案 ...
随机推荐
- 从配置文件中读取数据获取Connection
配置文件 db.driver=com.mysql.jdbc.Driver db.url=jdbc\:mysql\://localhost\:3306/mybase db.user=root db.ps ...
- 给EcStore商城会员添加推广返利功能
EcStore商城后台应用中心安装“网站推广”应用,会员成为推广员有二种途径:一是后台/推广设置/推广员审核/推广注册模式设为:需注册后审核成为推广员 此模式下前台会员在使用推广前,需要在会员中心申请 ...
- 关于TP的RBAC的使用
如果你是一个TP的重度使用者的话,请自动略过笔者以下文字 权限管理我在成为一个开发者1年半内,接触过2种,一种就是数学方式 比如我们文件夹权限的755这种权限管理的方式,这种二进制的权限管理的方式 无 ...
- Android平台之不预览获取照相机预览数据帧及精确时间截
在android平台上要获取预览数据帧是一件极其容易的事儿,但要获取每帧数据对应的时间截并不那么容易,网络上关于这方面的资料也比较少.之所以要获取时间截,是因为某些情况下需要加入精确时间轴才能解决问题 ...
- Django RESTful API 设计指南
网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...
- 九章算法系列(#3 Binary Tree & Divide Conquer)-课堂笔记
前言 第一天的算法都还没有缓过来,直接就进入了第二天的算法学习.前一天一直在整理Binary Search的笔记,也没有提前预习一下,好在Binary Tree算是自己最熟的地方了吧(LeetCode ...
- IOS面试问题总结
IOS面试问题总结 分类: IOS开发2013-11-20 17:26 10458人阅读 评论(1) 收藏 举报 目录(?)[+] 通过网络搜寻和自己总结经历找了一些IOS面试经常被问道的问题 ...
- nodejs+express Mvc站点
nodejs+express Mvc站点 像asp.net Mvc一样开发nodejs+express Mvc站点 首先,我是个c#码农.从事Mvc开发已然4个年头了,这两年前端MVC的兴起,我也跟风 ...
- 配置wamp环境使得在命令行下也能执行socket扩展
首先在apache中开启socket扩展 php环境安装目录\bin\apache\apache2.2.17\bin\php.ini 去掉前面的';' extension=php_sockets. ...
- ORA-07217: sltln: environment variable cannot be evaluated及RMAN-06059
备份脚本: RMAN> run { allocate channel c1 device type disk format '$BACKUP_HOME/level0/level0_%d_%s_% ...