C++ 操作 MySQL
使用VS2008如IDE, 准备操作:
1. 项目属性 C++ 其他包括文件夹 为 mysql 安装文件夹的include
如:"C:\Program Files (x86)\MySQL\MySQL Server 5.6\include"
2. 链接器 常规 附加库文件夹 路径为 mysql 安装文件夹的lib
"C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib"
3. 链接器 输入 附加依赖项 路径为 mysql 为 libmysql.lib 所在文件夹,
如 "C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.lib"
注:这里的文件文件夹路径由于有空格。所以一定要用 " " 包括起来!
!!
4. 将 mysql 文件夹下的 libmysql.dll 文件复制到 debug 文件夹下,这个非常重要!!。!
代码:
#include <iostream>
#include <winsock2.h>
#include <string> #include "mysql.h" #pragma comment(lib, "libmysql.lib"); using namespace std; int main()
{
MYSQL mysql;
mysql_init(&mysql); // 初始化 MYSQL *ConnStatus = mysql_real_connect(&mysql,"localhost","root","","sky",3306,0,0);
if (ConnStatus == NULL)
{
// 连接失败
int i = mysql_errno(&mysql);
string strError= mysql_error(&mysql);
cout <<"Error info: "<<strError<<endl; return 0;
} cout<<"Mysql Connected..."<<endl; string strsql;
MYSQL_RES *result=NULL; // 数据结果集 // 插入操作
strsql = "insert into t1 values(2,'lyb')"; if(0 == mysql_query(&mysql,strsql.c_str()))
{
cout<<"insert ok"<<endl;
}
else
{
cout<<"insert error"<<endl;
return 0;
} //查询
strsql = "select * from t1"; if(0 == mysql_query(&mysql,strsql.c_str()))
{
cout<<"select ok"<<endl;
result = mysql_store_result(&mysql); // 获取结果放到 result中
}
else
{
cout<<"select error"<<endl;
return 0;
} //返回记录集总数
int rowcount = mysql_num_rows(result);
cout<<"row count :"<<rowcount<<endl; //取得表的字段数组 数量
unsigned int feildcount = mysql_num_fields(result);
cout<<"feild count: " << feildcount <<endl;
cout << endl; //字段指针 遍历字段
MYSQL_FIELD *feild = NULL;
for(unsigned int i = 0; i<feildcount;i++)
{
feild = mysql_fetch_field_direct(result,i);
cout<<feild->name<<"\t";
}
cout << endl; //行指针 遍历行
MYSQL_ROW row =NULL;
while (NULL != (row = mysql_fetch_row(result)) )
{
for(int i=0; i<feildcount;i++)
{
cout<<row[i]<<"\t";
}
cout<<endl;
} cout<<endl; //释放结果集 关闭数据库
mysql_free_result(result);
mysql_close(&mysql);
mysql_library_end(); return 0;
} //官方文档參考
//http://dev.mysql.com/doc/refman/5.1/zh/apis.html
执行结果
C++ 操作 MySQL的更多相关文章
- ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- EF操作MySql
EF的CodeFrist操作MySql的提前准备: 1.安装两个包:MySql.Data和MySql.Data.Entity,在VS中程序包管理器中添加2个包.(备注需要的VS2015,并且EF6支持 ...
- .NET Core 使用Dapper 操作MySQL
MySQL官方驱动:http://www.cnblogs.com/linezero/p/5806814.html .NET Core 使用Dapper 操作MySQL 数据库, .NET Core 使 ...
- asp.net core 1.1 升级后,操作mysql出错的解决办法。
遇到问题 core的版本从1.0升级到1.1,操作mysql数据库,查询数据时遇到MissingMethodException问题,更新.插入操作没有问题. 如果你也遇到这个问题,请参照以下步骤进行升 ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- java分享第十七天-03(封装操作mysql类)
JAVA操作mysql所需jar包:mysql-connector-java.jar代码: import java.sql.*; import java.util.ArrayList; import ...
- LightMysql:为方便操作MySQL而封装的Python类
原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...
随机推荐
- UVA 534 - Frogger(kruskal扩展)
UVA 534 - Frogger 题目链接 题意:给定一些点.如今要求一条路径从第一个点能跳到第二个点,而且这个路径上的最大距离是最小的 思路:利用kruskal算法,每次加最小权值的边进去,推断一 ...
- poj 1743 男人八题之后缀数组求最长不可重叠最长重复子串
Musical Theme Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14874 Accepted: 5118 De ...
- RegisterHotKey注册热键,然后响应WM_HOTKEY消息
MSDN中的一个示例代码,步骤就是RegisterHotKey注册热键,然后响应WM_HOTKEY消息 @1:这个是系统热键 #include "stdafx.h" int _cd ...
- System单元对所有与COM相关的声明就这么多,需要倒背如流
是首先是VM表,但是和COM相关的函数地址都废弃了,这几个VM函数具体放在哪里,还得在研究: { Virtual method table entries } vmtSelfPtr = -; vmtI ...
- hdu 4291 A Short problem(矩阵+取模循环节)
A Short problem Time Limit: 2000/1000 MS (J ...
- hdu1054(最小顶点覆盖)
传送门:Strategic Game 题意:用尽量少的顶点来覆盖所有的边. 分析:最小顶点覆盖裸题,最小顶点覆盖=最大匹配数(双向图)/2. #include <cstdio> #incl ...
- scala akka 修炼之路5(scala特质应用场景分析)
scala中特质定义:包括一些字段,行为(方法/函数/动作)和一些未实现的功能接口的集合,能够方便的实现扩展或混入到已有类或抽象类中. scala中特质(trait)是一个非常实用的特性,在程序设计中 ...
- C++操作符operator的另一种用法
http://blog.csdn.net/memewry/article/details/7833314 参考地址 今天在程序员面试宝典上看到这样一道题目: A C++ developer want ...
- android圆角View实现及不同版本号这间的兼容
在做我们自己的APP的时候.为了让APP看起来更加的好看,我们就须要将我们的自己的View做成圆角的,毕竟主流也是将非常多东西做成圆角.和苹果的外观看起来差点儿相同,看起来也还不错. 要将一个View ...
- sar使用说明
sar这东西,一开始还以为是内部有的,原来是外部的工具,可以到 http://pagesperso-orange.fr/sebastien.godard/download.html 去下载 1 安装 ...