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", 3306, NULL, 0);
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[1]);//这里是个显示的函数,控制台可以用cout
}

上面的代码,没有过多的错误检测,因为几行代码而已,有问题的话注释测测吧,可以使用

unicode下用Cstring会很麻烦,直接转换类型是不行的(只会保留第一个字符),于是查询语句就出错咯

顺便问一个问题,这句会造成内存泄漏吗(我当然是知道答案的哈,就当是考一下初学者,大神就无视吧哈)

char *sql = "select * from user";

sql="I am Zenki Kong"//那加多这一句呢?会不会造成内存泄漏?

至此,如无意外就成功了!!!

但是个人感觉使用connector连接用起来更加方便,所以写完这个博客后我已经开始着手了,如果成功我也会写博客,有兴趣的同学可以留意一下。

目前了解到C++连接mysql的方法有三种,ado、直接使用mysql api还有就是connector c++

顺便问一下路过的大神,不同的连接方式对数据库的效率有影响吗?请问哪一种效率最高?

时间: 2025-01-02 14:34:29

c++连接mysql数据库(使用mysql api方式,环境VS2013+MYSQL5.6)的相关文章

使用EntityFramework6连接MySql数据库(db first方式)

查看了 逆水寒龙前辈的 使用EntityFramework6连接MySql数据库(db first方式) 自己亲自实践 遇到一点问 mysql-connector-net-x.x.x.msi mysql-for-visualstudio-x.x.x.msi 这两个东西需要使用最新版本,老版本装不上. 安装nuget包 不需要带版本号 Install-Package EntityFramework Install-Package MySql.Data.Entity 带版本号也会出现这个错误 提醒一

21_django配置使用mysql数据库的两种方式

目录 配置django项目使用mysql数据库的两种方式 1. 直接在settings.py 文件中添加数据库配置信息 2. 将数据库配置信息存到一个文件中,在settings.py文件中将其引入.(推荐) 安装mysql驱动 1. 使用mysqlclient *推荐 2. 使用pymysql django2.2以上版本默认不支持使用了 配置django项目使用mysql数据库的两种方式 1. 直接在settings.py 文件中添加数据库配置信息 # 配置数据库的第一种方式 DATABASES

MySQL数据库安装MySQL Apply Security Settings不成功

MySQL数据库安装MySQL Apply Security Settings不成功,是件让我们很头疼的事.仔细想想,其实也没有想象的那么难,造成不成功的原因不外乎就是有一些权限问题或者是一些没有开启的服务,知道这些,我们再解决起来也就容易多了.本文就介绍了这一解决方案,接下来就让我们来一起了解一下这一解决过程. 解决方案如下: 打开命令提示符(管理员权限: 开始 - 程序 - 附件 - 命令提示符 - 右键 - 以管理员身份运行). 执行net stop mysql如果已经启动了MySQL,把

Mysql数据库的mysql Schema 到底有哪些东西&amp; 手工注入的基础要领

#查看数据库版本 mysql> select @@version; +------------+ | @@version  | +------------+ | 5.5.16-log | +------------+ 1 row in set (0.00 sec) mysql> select * from information_schema.schemata; # 保存了系统的所有的数据库名 ,关键的字段是schema_name # 2 rows in set (0.04 sec)表示只有2

PHP连接MySQL数据库的几种方式

PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi :MySQLi 只针对 MySQL 数据库,MySQLi 还提供了 API 接口. PDO (PHP Data Objects):PDO 应用在 12 种不同数据库中. 共同点: 1. 两者都是面向对象 2. 两者都支持预处理语句. 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的. 确保wamp里已经安装好了MySQLi或PDO,查看方式:echo phpinfo(); 接下来将会使用以下三种方式

PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)

PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案. PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展.MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的.因此这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进行交互,但并不支持后期MySQL服务端提供的一些特性.由于太古老,又

[PHP]PHP编程操作Mysql数据库的三种方式

当我开始去接触PHP的时候,真切的感受到其所具有的魅力,本着学习的态度和打破固有的语言和模式的想法,开始了PHP之旅,总的来说,走的还是比较顺利,在其中能够看到C,Java,Perl影子,学习曲线不大,但是做好产品仍然有着一条漫漫长路. 多余的话不说了,慢慢感受和领悟,本文主要讲述PHP操作数据库的三种扩展. 如下图是PHP访问数据库的三种扩展方式: 下面举出三种方式访问数据库并查询数据的实例代码: 1.mysql扩展 <?php //1:获取数据库连接 $connection = @ mysq

python连接mysql数据库(MySQL)

在介绍python在数据库中的操作之前先简单介绍点mysql中的操作语言: [[email protected] 2018-01-24]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 194 Server version: 5.6.16 Source distribution Copyright (c) 2

使用dorado5创建数据库的连接(此处连接的数据库时MySQl)

1.在dorado中展开已经创建好了的项目: 2.在Configures(配置文件)下找到datasource(数据源)节点,并且双击该节点,就可以在右侧是的显示区域得到数据库连接创建区域: 3.单击上图用红圈标出的部分绿色的"Add",开始进行数据库的连接,单击后弹出"数据源名字"的创建,以及"数据源类型"的选择,此处,Type选默认的JDBC,Name随便写(最好带有项目名称,例如本项目为hr_manage,则将Name设置为hr_manag

C#调用MySQL数据库(使用MySql.Data.dll连接)mysql-connector-net-6.10.4.msi

下载地址:http://dev.mysql.com/downloads/connector/net/ 安装指导 1.安装:mysql-connector-net-6.10.4.msi 其下载地址:http://dev.mysql.com/downloads/connector/net/ 在Windows10 操作系统安装mysql-connector-net-6.10.4.msi 默认是安装在C盘: 安装完后在应用工程中引用组件MySql.Data.dll. 然后在应用工程中引用组件:MySql