当前位置: 首页 > news >正文

淄博建站哪家好wap网站制作怎么做

淄博建站哪家好,wap网站制作怎么做,一家公司为什么要建官方网站,ppt免费模板官网根据我的以前的文章 http://blog.csdn.net/skyhuangdan/article/details/21099929 链接数据库成功后进行封装。我封装类使用的是VS2005下的win32控制台应用程序编写#xff0c;预编译头文件了的。所以要在 stdafx.h 里面加入 #xff1a;#include CMySQL.h现在代…根据我的以前的文章 http://blog.csdn.net/skyhuangdan/article/details/21099929 链接数据库成功后进行封装。我封装类使用的是VS2005下的win32控制台应用程序编写预编译头文件了的。所以要在 stdafx.h 里面加入 #include CMySQL.h现在代码奉上main函数代码mysql2.cpp// mysql2.cpp : 定义控制台应用程序的入口点。//#include stdafx.hint main(){CMySQL mysql;int re mysql.Connect(localhost, root, 123456);mysql.ReConnect();char buffer[1024] {0};while(1){memset(buffer, 0, 1024);printf(please input cmd:\n);if( strcmp( quit, gets(buffer)) ! 0 ){if( (char) 1 buffer[0] ){mysql.SelectQuery(buffer1);}else{mysql.ModifyQuery(buffer1);printf(Modify\n);}}elsebreak;}getchar();}CMySQL.h#pragma once#include #include #include #include using namespace std;/*#define ERRMSG1(fmt,...) ; sprintf(m_szErrMsg, fmt, __VA_ARGS__);#define ERRMSG2(fmt,args...) ; sprintf(m_szErrMsg, [%s 第 %d 行 ]; fmt\r\n , __FILE__, __LINE__, ##args);*/class CMySQL{public:CMySQL(void);public:~CMySQL(void);public:bool m_bConnected; //数据库连接了吗? true--已经连接; false--还没有连接char m_szErrMsg[1024]; //函数出错后, 错误信息放在此处int m_iFields; //字段个数MYSQL m_connection; //连接MYSQL_RES* m_result; //结果集指针MYSQL_ROW m_row; //一行, typedef char **MYSQL_ROW;private:string m_sDbIp; //数据库服务器IPstring m_sUser; //用户名string m_sPassword; //口令public:int Connect(const char* szDbIp, const char* szUser, const char* szPassword);//关闭连接无论之前是否已经连接使用这个函数都不会有问题void CloseConnect();//判断是否连接bool IsConnected();//连接标志void SetConnected(bool bTrueFalse );//重新连接int ReConnect();//用于执行查询命令并且把查询到的结果集保存到m_result结果集里面//!!此函数调用SelectPrint()函数int SelectQuery(const char* szSQL);//只是执行SQL命令int ModifyQuery(const char* szSQL);//返回错误信息const char* GetErrMsg();//保存连接参数void SaveParam(const char* szDbIp, const char* szUser, const char* szPassword);//释放上次的结果void FreePreResult();//显示结果void PrintSelect();};CMySQL.cpp#include StdAfx.h#include CMySQL.hCMySQL::CMySQL(void){SetConnected(false);//把结果集置空m_result NULL;//初始化连接mysql_init(m_connection);}CMySQL::~CMySQL(void){//释放上一次的结果集FreePreResult();//关闭数据库连接CloseConnect();}int CMySQL::Connect(const char* szDbIp, const char* szUser, const char* szPassword){SaveParam(szDbIp, szUser, szPassword);//先判断释放已连接防止重复连接if (IsConnected())return 0;//连接数据库if (mysql_real_connect( m_connection, szDbIp, szUser, szPassword, NULL, 0,NULL, 0) NULL){sprintf(m_szErrMsg,%s ,mysql_error(m_connection));return -1;}printf([mysql] conn to %s [user:%s] succ!\r\n, szDbIp, szUser);//设置连接标志为 trueSetConnected(true);return 0;}void CMySQL::CloseConnect(){//不论m_connection曾经是否连接过 这样关闭都不会有问题mysql_close(m_connection);SetConnected(false);}bool CMySQL::IsConnected() {return m_bConnected;}void CMySQL::SetConnected(bool bTrueFalse){m_bConnected bTrueFalse;}void CMySQL::FreePreResult(){if (m_result ! NULL){mysql_free_result(m_result);m_result NULL;}}int CMySQL::SelectQuery(const char* szSQL){//如果查询串是空指针,则返回if (szSQL NULL) {sprintf(m_szErrMsg,%s, szSQLNULL);return -1;}//如果还没有连接,则返回if (!IsConnected()) {sprintf(m_szErrMsg,%s , 还没有建立连接);return -2;}try //这些语句与连接有关出异常时就重连{//查询if (mysql_real_query(m_connection, szSQL, strlen(szSQL)) ! 0){sprintf(m_szErrMsg,%s , mysql_error(m_connection));printf(%s, mysql_error(m_connection));printf(ReConnect() is called, select111 !!!***\r\n);int nRet ReConnect();if (nRet ! 0)return -3;//if (mysql_real_query(m_connection, szSQL, strlen(szSQL)) ! 0)return -33;//}//释放上一次的结果集FreePreResult();//取结果集m_result mysql_store_result(m_connection);if (m_result NULL) {sprintf(m_szErrMsg,%s , mysql_error(m_connection));return -4;}} catch (...) {printf(ReConnect() is called, select !!!***!\r\n);ReConnect();return -5;}//取字段的个数m_iFields mysql_num_fields(m_result);//查询完过后进行打印出来this-PrintSelect();return 0;}int CMySQL::ReConnect() {CloseConnect();//连接数据库SetConnected(false);//把结果集置空m_result NULL;//初始化连接mysql_init(m_connection);if (mysql_real_connect(m_connection, m_sDbIp.c_str(), m_sUser.c_str(),m_sPassword.c_str(), NULL, 0, NULL, 0) NULL){sprintf(m_szErrMsg,%s , mysql_error(m_connection));return -1;}//设置连接标志为 trueSetConnected(true);return 0;}const char* CMySQL::GetErrMsg() {return m_szErrMsg;}void CMySQL::SaveParam(const char* szDbIp, const char* szUser,const char* szPassword) {m_sDbIp szDbIp; //数据库服务器IPm_sUser szUser; //用户名m_sPassword szPassword; //口令}void CMySQL::PrintSelect(){printf(\n------------------------------------------------\n);int num_fields mysql_num_fields(m_result);while ( m_row mysql_fetch_row( m_result) ){for( int i 0; i num_fields; i ){if(m_row[i])printf(%s , m_row[i]);elseprintf(NULL);}printf(\n);}printf(\n------------------------------------------------\n);}int CMySQL::ModifyQuery(const char* szSQL) {//如果查询串是空指针,则返回if (szSQL NULL) {sprintf(m_szErrMsg,%s, szSQLNULL);return -1;}//如果还没有连接,则返回if (!IsConnected()) {sprintf(m_szErrMsg,%s, 还没有建立连接);return -2;}try //这些语句与连接有关出异常时就重连{//查询, 实际上开始真正地修改数据库if (mysql_real_query(m_connection, szSQL, strlen(szSQL)) ! 0) {sprintf(m_szErrMsg,%s, mysql_error(m_connection));return -3;}} catch (...) {printf(ReConnect() is called ,modify!!!***\r\n);ReConnect();return -5;}return 0;}注对于输入的MySQL命令错误的情况下程序会连接一遍在程序关闭过后用于连接的关键字【MYSQL m_connection; 】必须要初始化否则程序会出错。还有重连过后必须重新USE XXXXX; 因为重新连接那里并没有自动连接你之前USE过的数据库。
http://www.zqtcl.cn/news/2379/

相关文章:

  • wordpress 中文建站个人网站域名名称大全
  • 知名网站设计服务商时尚类网站设计公司
  • 东莞专业网站推广怎么做windows10优化工具
  • 医院网站建设好处wordpress 只显示列表
  • 驻马店河南网站建设网站需求分析的重要
  • 东莞做网站推广公司做seo需要哪些知识
  • 即买即送的网站有哪些中国机械加工网17s
  • 如何提高网站安全如何制作自己的网址链接
  • 服务器 打开网站iis7wordpress上传上限
  • 免费公司网站怎么做双通网络网站建设价格
  • dede网站qq类文章源码不会编程能建网站
  • 公司宣传册页面设计模板seo李守洪排名大师
  • 绵阳市 网站建设百姓网找工作
  • 重庆建筑证书查询网站单页网页设计
  • 做公司+网站建设价格wordpress模版全屏
  • 中国工厂网站wordpress文章展示页
  • 建站软件怎么免费升级做网站哪个系统最安全
  • 网站关键词放哪网页开发工具的作用有多大
  • 织梦dedecms女性时尚门户网站模板如何建单页网站栏目
  • 关于网站建设的广告语平面设计培训学校学费
  • 做网站以前出名的公司陕西做网站公司
  • 网站管理与建设总结国外做汽配的网站
  • 哪些域名适合营销型网站网站海外推广公司
  • 衡阳网站建设价格国人原创wordpress cms模板:hcms
  • 小网站关键词公司网站怎么做网站备案
  • 网站建设规划书模板西安网站创建
  • 抖音做我女朋友的网站无代码开发原理
  • 做英文网站 用阿里服务器行吗新办公司网上核名在哪个网站做
  • 官方网站建设对比广东网站系统建设
  • 网站开发需求逻辑图专门做网站建设的公司