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 ...
随机推荐
- [ExtJS5学习笔记]第第二十四次 Extjs5形式上gridpanel或表单数据后台传输remoteFilter设定
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39667533 官方文档:http://docs.sencha.com/extjs/5. ...
- Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例
1,加速传感器可以监听到x,y,z三个方向的加速度,使用步骤如下: (1)实例化CMMotionManager类 (2)向CMMotionManager的accelerometerUpdateInte ...
- AIR
There is a meaning for wings that cannot fly,it's a previous memory of when you once flew through th ...
- Richard Stallman与洪峰谈黑客道培训实录_业界_科技时代_新浪网
Richard Stallman与洪峰谈黑客道培训实录_业界_科技时代_新浪网 Richard Stallman与洪峰谈黑客道培训实录
- mfc 导出数据保存成excel和txt格式
最近做了一些东西,项目到了收尾的工作.不过这次我没有参与到控件机器的功能的那一部分,都是主管自己写的.不过,所有的控件重写都是由我来做的.还有数据库这一方面是我和主管共同完成的.不过还不错,主管写一部 ...
- Erlang cowboy 处理不规范的client
Erlang cowboy 处理不规范的client Cowboy 1.0 參考 本章: Dealing with broken clients 存在很多HTTP协议的实现版本号. 很多广泛使用的cl ...
- Api之Cors跨域以及其他跨域方式
Web Api之Cors跨域以及其他跨域方式(三) 我们知道ajax不能跨域访问,但是有时我们确实需要跨域访问获取数据,所以JSONP就此诞生了,其本质使用的是Script标签,除JSONP以外还 ...
- hdu5172(线段树)
传送门:GTY's gay friends 题意:判断区间[l,r]内的数字是否符合1~len(r-l+1)的一个全排列. 分析:pos[i]记录数字i出现的最大位置,pre[i]记录在位置i的数字a ...
- C++ Primer 学习笔记_61_重载操作符与转换 --自增/自减操作符
重载操作符与转换 --自增/自减操作符 引言: 自增,自减操作符常常由诸如迭代器这种类实现,这种类提供相似于指针的行为来訪问序列中的元素.比如,能够定义一个类,该类指向一个数组并为该数组中的元素提供訪 ...
- net 面向接口框架
Asp.net 面向接口框架之应用程序上下文作用域组件 在团队中推广面向接口开发两年左右,成果总体来说我还是挺满意的,使用面向接口开发的模块使用Unity容器配置的功能非常稳定,便于共享迁移(另一个项 ...