在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

c++中怎么实现一个mysql通用类

141次阅读
没有评论

共计 3076 个字符,预计需要花费 8 分钟才能阅读完成。

本篇文章给大家分享的是有关 c ++ 中怎么实现一个 mysql 通用类,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

常用的函数

初始化 API 库:mysql_library_init() 

初始化数据结构:mysql_init()

连接数据库前的选项:mysql_options()

错误信息:mysql_error()

连接函数:mysql_real_connect()

执行 SQL 语句:mysql_query()

转存查询结果:mysql_store_result()

关闭连接:mysql_close()

dbctrl.h

#ifndef __DBCTRL_H__
#define __DBCTRL_H__
#include  winsock.h 
#include  iostream.h 
#include  string 
#include  mysql.h 
#pragma comment(lib,  ws2_32.lib)
#pragma comment(lib,  libmysql.lib)
using namespace std;
class DBctrl
 private:
 MYSQL mydata; //MySQL 对象,必备的一个数据结构
 MYSQL_RES *result; // 用于存放结果   建议用 char*  数组将此结果转存
 public:
 int row; // 查询结果的行数
 int field; // 查询结果的列数
 int autoNum; // 上一次 auto_increment 的值
 int errorNum; // 错误代号
 const char* errorInfo; // 错误提示
 int affectedRow; // 上一次查询影响的行数

void DBerror(); void DBconn(char* server, char* username, char* password, char* database,int port); void DBquery(string queryStr); void DBquery(string queryStr, char* data[100][100]); void DBclose(); #endif

dbctrl.cpp

#include  dbctrl.h 
// 构造函数   初始化各个变量和数据
DBctrl::DBctrl()
 mysql_library_init(0,NULL,NULL);
 mysql_init(mydata);
 mysql_options( mydata,MYSQL_SET_CHARSET_NAME, gbk 
 row=0;
 field=0;
 autoNum=0;
 errorNum=0;
 errorInfo= ok 
 affectedRow=0;
// 编译时显示测试信息,正式使用时把此函数主题注释掉即可
void DBctrl::DBtest(int flag)
 char* message;
 switch (flag)
 case 1:
 message= Database OK! 
 break;
 case 2:
 message= Database error! 
 break;
 case 3:
 message= Query OK! 
 break;
 case 4:
 message= Query error! 
 break;
 case 5:
 message= data overflew! 
 break;
 default:
 message=NULL;
 break;
 if (message!=NULL) cout message endl;
// 收集错误信息
void DBctrl::DBerror()
 errorNum=mysql_errno(mydata);
 errorInfo=mysql_error(mydata);
// 连接数据库
void DBctrl::DBconn(char* server, char* username, char* password, char* database,int port)
 char* svr=server; //server:服务器域名或 IP
 char* usr=username; //username:数据库用户名
 char* pwd=password; //password:数据库密码
 char* dbn=database; //database:数据库名
 int prt=port; //port:端口号
 // 这里新建变量并再赋一次值是为了调试的时候显示连接参数,其实可以不这么做
 if(mysql_real_connect( mydata,svr,usr,pwd,dbn,prt,0,0) != NULL)
 DBtest(1);
 else
 DBtest(2);
// 执行查询语句
void DBctrl::DBquery(string queryStr)
 if(0==mysql_query( mydata,queryStr.c_str()))
 DBtest(3);
 else
 DBtest(4);
 DBerror();
// 执行查询语句(重载,有返回结果的)void DBctrl::DBquery(string queryStr, char* data[100][100])
 if(0==mysql_query( mydata,queryStr.c_str()))
 DBtest(3);
 else
 DBtest(4);
 affectedRow=mysql_affected_rows(mydata);
 autoNum=mysql_insert_id(mydata);
 result=mysql_store_result(mydata);
 row=mysql_num_rows(result);// 计算行数
 field=mysql_num_fields(result);// 计算列数
 // 转出数据
 if(row 100 || field 100)
 DBtest(5);
 else
 MYSQL_ROW line=NULL;
 line=mysql_fetch_row(result);// 取第一行结果
 int j=0;
 while(NULL!=line)// 查看是否为空行,是则结束,否则将这一行的数据转存到 data 的一行中并取下一行
 for(int i=0; i field;i++)
 data[j][i]=line[i];
 j++;
 line=mysql_fetch_row(result);
 DBerror();
// 断开连接
void DBctrl::DBclose()
 mysql_close(mydata);
}

主体

 #include  dbctrl.h  
 
 void main() 
 { 
 DBctrl my; // 刚才建的通用类  
 string query; // 存放查询语句  
 char* data[100][100]; // 存放查询结果  
 
 query= Select * from table1  
 my.DBconn(localhost , root , 123456 , test ,3306); 
 my.DBquery(query,data); // 执行 query 中的语句,并将结果回送给 data 
 my.DBclose(); // 关闭连接  
 
 /*  此处用 for 循环显示 data 数组的内容... */ 
 }

以上就是 c ++ 中怎么实现一个 mysql 通用类,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计3076字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久久高清国产999尤物 | 中文字幕在线二区 | 九九精品热 | 精品成人免费播放国产片 | 自拍视频在线观看 | 日本毛片视频 | 99热久久免费精品首页 | 国产色综合久久无码有码 | 成人精品视频在线观看 | 欧美啪啪网站 | 视频一区二区三区在线 | 亚洲精品成人区在线观看 | 三级做爰蜜桃成熟时4 | 色琪琪av中文字幕一区二区 | 国产在线无遮挡免费观看 | 精品人无码一区二区三区 | 精品人妻少妇一区二区三区不卡 | 国内精品久久久久影院优 | 亚洲女同成av人片在线观看 | 成人影片一区免费观看 | 国产成人精品日本亚洲专一区 | 男女裸交无遮挡啪啪激情试看 | 成人6969www色在线 | 午夜大尺度福利视频在线观看 | 台湾佬视频在线偷拍 | 澳门特级α片免费观看视频 | 亚洲伊人情人综合网站 | 男人天堂亚洲 | 国产精品亚洲专区无码web | 亚洲裸男自慰gv网站 | 性动态图av无码专区 | 成人在线视频网 | 日韩精品福利在线 | 国产女人精品视频国产灰线 | 免费视频爱爱太爽在线观看 | 国产三级做爰在线播放 | 国产精品成人av片免费看 | 影音先锋人妻啪啪av资源网站 | 一本大道东京热无码一区 | av免费不卡国产观看 | 亚洲成片 |