C++操作MYSQL数据库

7人阅读 评论(0) 收藏 举报
分类:

1.安装mysql

2.建立C++控制台程序,新建CPP源文件,如:sqlconn.cpp

3.在工程项目中属性->c/C++->常规->附加包含目录中添加mysql安装目录中的MySQL\MySQL\MySQL Server 5.7\include

  4.添加库目录

 5.添加依赖项” libmysql.lib”

 

6.将运行平台改为X64(这步很重要,不然编译时会报错 )

7.在源文件中加入头文件:

#include <winsock.h> //注意顺序,要放在mysql.h前
#include <mysql.h>//控制台项目中要在mysql.h之前include <winsock.h>

8.编写自己的数据库操作程序

示例:

void test1()
{
 MYSQL *pConn;
 pConn = mysql_init(NULL);
 //第2、3、4、5参数的意思分别是:服务器地址、用户名、密码、数据库名,第6个为mysql端口号(0为默认值3306)
 if(!mysql_real_connect(pConn,"localhost","root","root","test",0,NULL,0))
 {  
  printf("无法连接数据库:%s",mysql_error(pConn));
  return;
 }
 mysql_query(pConn,"set names gbk");//防止乱码。设置和数据库的编码一致就不会乱码
 //SET NAMES x 相当于 SET character_set_client = x;SET character_set_results = x;SET character_set_connection = x;
 //写set character set gbk;查询不会乱码,但是参数化插入会报错。而set names gbk则都不会乱码


 //mysql_real_query比mysql_query多了个参数: 字符串query的长度, 所以适合有二进制数据的query, 而mysql_query的字符串query不能包含二进制,因为它以\0为结尾
 //mysql_query() 不能传二进制BLOB字段,因为二进制信息中的\0会被误判为语句结束。 mysql_real_query() 则可以。
 if(mysql_query(pConn,"select * from persons"))
 {
  printf("查询失败:%s",mysql_error(pConn));
  return;
 }

 //mysql_store_result是把查询结果一次性取到客户端的离线数据集,当结果比较大时耗内存。
 //mysql_use_result则是查询结果放在服务器上,客户端通过指针逐行读取,节省客户端内存。但是一个MYSQL*连接同时只能有一个未关闭的mysql_use_result查询
 MYSQL_RES *result = mysql_store_result(pConn);
 MYSQL_ROW row;
 while(row = mysql_fetch_row(result))
 {
  printf("%s %s\n",row[1],row[2]);
 }

 mysql_free_result(result);
 mysql_close(pConn);
}

9.将mysq目录….. \MySQL\MySQL Server 5.7\lib 下的libmysql.dll放到生成的exe目录下,编译执行即可。

 

参考:

1.http://www.cnblogs.com/rupeng/archive/2012/10/06/2712841.html

2.http://bbs.csdn.net/topics/390523114

查看评论

MySQL 常用语法总结

一、SQL速成  结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表、索引、字段等)的建立和操纵。  以下是一些重要的SQL快速参考,有关SQL的...
  • sunboy_2050
  • sunboy_2050
  • 2010-01-05 11:21:00
  • 36648

Mysql增删改查语句

增加:INSERT INTO 表名(字段名1,字段名2) VALUE(字段值1,字段值2) 例:INSERT INTO a(id,name) VALUE(2,'李四'); 删除:DELETE FR...
  • Eternalray
  • Eternalray
  • 2016-05-03 13:33:12
  • 7619

mysql与Oracle的区别

mysql与Oracle的区别
  • baidu_37107022
  • baidu_37107022
  • 2017-08-10 11:22:45
  • 8804

[原创] MySQL Proxy 学习笔记

[原创] MySQL Proxy 学习笔记作者:heiyeluren时间:2008-1-28博客:http://blog.csdn.net/heiyeshuwu 【 测试平台 】服务器端:OS:Fre...
  • heiyeshuwu
  • heiyeshuwu
  • 2008-01-28 00:27:00
  • 26703

sql优化的几种方法

在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ...
  • u011936251
  • u011936251
  • 2017-08-17 20:59:55
  • 52699

无法启动mysql服务(位于本地计算机上)错误1067 windows真正解决方案

问题描述:在windows列表中打开MySQL 5.5 Command Line Client无法打开,查看服务是否开启。于是在服务中右键“启动”,提示错误:无法启动mysql服务(位于本地计算机上)...
  • DUANyaxin
  • DUANyaxin
  • 2017-05-07 16:24:29
  • 10739

关于Mysql线程的基本设置

客户端发起连接到mysql server,mysql server监听进程,监听到新的请求,然后mysql为其分配一个新的 thread,去处理此请求。从建立连接之开始,CPU要给它划分一定的thre...
  • a_bang
  • a_bang
  • 2017-01-28 17:45:35
  • 1855

MySQL 简单的增删改查

使用的是mysql-essential-5.1.55-win32.msi和Navicat for mySql1、新增一个表CREATE TABLE userinfo ( uuid varchar(36...
  • meng1339746727
  • meng1339746727
  • 2016-04-07 18:49:00
  • 4248

SQL教程:数据定义 DDL(Data Definition Language)

数据定语言是指对数据的格式和形态下定义的语言,他是每个信息库要建立时候时首先要面对的,举凡数据分哪些信息表关系、信息表内的有什么栏位主键、表和表之间互相参考的关系等等,都是在开始的时候所必须规划好的。...
  • vicker109
  • vicker109
  • 2005-08-14 13:38:00
  • 1305

汉化mysql front

  • 2014年07月21日 13:17
  • 3.44MB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 6680
    积分: 315
    排名: 23万+
    最新评论