c++读写MySQL
/****************************MYSQL IN C*******************************/
/*************************2007 -03 -07 *******************************/
/*************************李克喜**************************************/ #include <stdio.h>
#include <string>
#include <afxsock.h>
#include "mysql.h"
using namespace std;
class VspdCToMySQL
{
public: //变量
MYSQL mysql; /*
构造函数和稀构函数
*/
VspdCToMySQL();
~VspdCToMySQL(); /*
主要的功能:
初始化数据库
连接数据库
设置字符集 入口参数:
host :MYSQL服务器IP
port:数据库端口
Db:数据库名称
user:数据库用户
passwd:数据库用户的密码
charset:希望使用的字符集
Msg:返回的消息,包括错误消息 出口参数:
int :0表示成功;1表示失败
*/
int ConnMySQL(char *host,char * port,char * Db,char * user,char* passwd,char * charset,char * Msg); /*
主要的功能:
查询数据 入口参数:
SQL:查询的SQL语句
Cnum:查询的列数
Msg:返回的消息,包括错误消息 出口参数:
string 准备放置返回的数据,多条记录则用0x06隔开,多个栏位用0x05隔开
如果 返回的长度= 0,责表示舞结果
*/
string SelectData(char * SQL,int Cnum ,char * Msg); /*
主要功能:
插入数据 入口参数
SQL:查询的SQL语句
Msg:返回的消息,包括错误消息 出口参数:
int :0表示成功;1表示失败
*/
int InsertData(char * SQL,char * Msg); /*
主要功能:
修改数据 入口参数
SQL:查询的SQL语句
Msg:返回的消息,包括错误消息 出口参数:
int :0表示成功;1表示失败
*/
int UpdateData(char * SQL,char * Msg); /*
主要功能:
删除数据 入口参数
SQL:查询的SQL语句
Msg:返回的消息,包括错误消息 出口参数:
int :0表示成功;1表示失败
*/
int DeleteData(char * SQL,char * Msg); /*
主要功能:
关闭数据库连接
*/
void CloseMySQLConn(); };
/****************************MYSQL IN C*******************************/
/*************************2007 -03 -07 *******************************/
/*************************李克喜**************************************/ #include "stdafx.h"
#include "VspdCTOMySQL.h" VspdCToMySQL::VspdCToMySQL()
{
} VspdCToMySQL::~VspdCToMySQL()
{
} //初始化数据
int VspdCToMySQL::ConnMySQL(char *host,char * port ,char * Db,char * user,char* passwd,char * charset,char * Msg)
{
if( mysql_init(&mysql) == NULL )
{
Msg = "inital mysql handle error";
return ;
} if (mysql_real_connect(&mysql,host,user,passwd,Db,,NULL,) == NULL)
{
Msg = "Failed to connect to database: Error";
return ;
} if(mysql_set_character_set(&mysql,"GBK") != )
{
Msg = "mysql_set_character_set Error";
return ;
}
return ;
} //查询数据
string VspdCToMySQL::SelectData(char * SQL,int Cnum,char * Msg)
{
MYSQL_ROW m_row;
MYSQL_RES *m_res;
char sql[];
sprintf(sql,SQL);
int rnum = ;
char rg = 0x06;//行隔开
char cg = {0x05};//字段隔开 if(mysql_query(&mysql,sql) != )
{
Msg = "select ps_info Error";
return "";
}
m_res = mysql_store_result(&mysql); if(m_res==NULL)
{
Msg = "select username Error";
return "";
}
string str("");
while(m_row = mysql_fetch_row(m_res))
{
for(int i = ;i < Cnum;i++)
{
str += m_row[i];
str += rg;
}
str += rg;
rnum++;
} mysql_free_result(m_res); return str;
}
int VspdCToMySQL::InsertData(char * SQL,char * Msg)
{
char sql[];
sprintf(sql,SQL);
if(mysql_query(&mysql,sql) != )
{
Msg = "Insert Data Error";
return ;
}
return ;
}
int VspdCToMySQL::UpdateData(char * SQL,char * Msg)
{
char sql[];
sprintf(sql,SQL);
if(mysql_query(&mysql,sql) != )
{
Msg = "Update Data Error";
return ;
}
return ;
}
int VspdCToMySQL::DeleteData(char * SQL,char * Msg)
{
char sql[];
sprintf(sql,SQL);
if(mysql_query(&mysql,sql) != )
{
Msg = "Delete Data error";
return ;
}
return ;
}
void VspdCToMySQL::CloseMySQLConn()
{
mysql_close(&mysql);
}
#include "stdafx.h"
#include "VspdCTOMySQL.h" int main(int argc, char* argv[])
{
char* host="MYSQL服务器IP";
char* user="root";
char* port ="";
char* passwd="用户密码";
char* dbname="数据库名称";
char* charset = "GBK";//支持中文
char* Msg = "";//消息变量
//初始化
VspdCToMySQL * vspdctomysql = new VspdCToMySQL;
if(vspdctomysql->ConnMySQL(host,port,dbname,user,passwd,charset,Msg) == )
printf("连接成功/r/n");
else
printf(Msg); //查询
char * SQL = "SELECT ids,username,passwd,address FROM vcaccesstest";
string str = vspdctomysql->SelectData(SQL,,Msg);
if( str.length() > )
{
printf("查询成功/r/n");
printf(str.data());
printf("/r/n");
}
else
{
printf(Msg);
}
//插入
SQL = "insert into vcaccesstest(ids,username,passwd,address) values(4,'我的','123210','测试地址')";
if(vspdctomysql->InsertData(SQL,Msg) == )
printf("插入成功/r/n");
//更新
SQL = "update vcaccesstest set username = '修改了',passwd='2345' where ids = 3 ";
if(vspdctomysql->UpdateData(SQL,Msg) == )
printf("更新成功/r/n");
//删除
SQL = "delete from vcaccesstest where ids = 3 ";
if(vspdctomysql->DeleteData(SQL,Msg) == )
printf("删除成功/r/n"); vspdctomysql->CloseMySQLConn(); return ;
}
原文传送门:https://blog.csdn.net/jemlee2002/article/details/1523164
c++读写MySQL的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- shell中读写mysql数据库
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
- R语言使用RMySQL连接及读写Mysql数据库 测试通过
R语言使用RMySQL连接及读写Mysql数据库 简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2 ...
- JDBC读写MySQL的大字段数据
JDBC读写MySQL的大字段数据 不管你是新手还是老手,大字段数据的操作常常令你感到很头痛.因为大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式 来处理的.而非一般的字段 ...
- spark读写mysql
spark读写mysql除官网例子外还要指定驱动名称 travels.write .mode(SaveMode.Overwrite) .format("jdbc") .option ...
- kettle大数据量读写mysql性能优化
修改kettleDB连接设置 1. 增加批量写的速度:useServerPrepStmts=false rewriteBatchedStatements=true useCompressio ...
- R语言使用RMySQL连接及读写Mysql数据库
简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64 系统编码:LANG=zh_ ...
- Spark学习笔记——读写MySQL
1.使用Spark读取MySQL中某个表中的信息 build.sbt文件 name := "spark-hbase" version := "1.0" scal ...
- C++ 读写MySQL经典 (转载)
from: http://blog.csdn.net/jemlee2002/article/details/1523164 看过很多C或是C++操作MySQL数据库的文章,大部分太吃力了,甚至有一 ...
随机推荐
- 第二篇:利用shell脚本执行webservice请求——基于soap
1. 项目背景 以往我们在开发基于webservice的项目中,我们总习惯于直接使用webservice的一些框架,如Axis,axis2和Xfire等.框架的好处是将webservice所涉及到的s ...
- OpenShift实战(一):OpenShift高级安装
1.1 服务器基本信息 本次安装采用一个master.5个node.3个etcd,node节点两块硬盘,60G磁盘用于docker storage,xxx改为自己的域名或主机名. 节点 功能 IP 内 ...
- 学习phalcon框架按照官网手册搭建第一个项目注册功能
中文手册官网:http://phalcon.ipanta.com/1.3/tutorial.html#bootstrap 官网提供http://www.tutorial.com项目源码github地址 ...
- 可空类型 Nullable<T>
Nullable<T> 内部实现了显示和隐式转换 显示转换: public static explicit operator T(T? value) { return value.Valu ...
- jquery ajax file upload NET MVC 无刷新文件上传
网上有各种各样的文件上传方法,有基于JS框架的.也有基于flash swf插件的. 这次分享一个比较简单而且实用能快速上手的文件上传方法,主要步骤: 1.引用Jquery包,我用的是jquery-1. ...
- Apollo单向SSL认证(2)
一.生成ks和ts 二.连接测试 1.配置 2.测试
- SpringCloud的服务网关zuul
演示如何使用api网关屏蔽各服务来源 一.概念和定义 1.zuul最终还是使用Ribbon的,顺便测试一下Hystrix断路保护2.zuul也是一个EurekaClient,访问服务注册中心,获取元数 ...
- python/ Django之中间件
python/ Django之中间件 一.中间件 中间件共分为: (1)process_request(self,request) (2)process_view(self, request, cal ...
- python 报障系统(完)
python 报障系统(完) 一.报障系统原理: 原理: 1. 简单管理 2. 角色多管理(权限) a. 登录 session放置用户信息(检测是否已经登录) session放置权限信息(检测是否有权 ...
- 设置Nginx+php-fpm显示错误信息
Begin 最近在用PHP写后台程序,但是有错误不会显示简直坑爹,全都是200这样的错误代码而已= =... 于是 于是就搜索如何打开错误显示,然后就在博客里面记录一下 修改配置文件 /etc/php ...