数据库教程:C++连接使用MySQL的方法

c++连接使用mysql,供大家参考,具体内容如下定义mysqlcon类class mysqlcon{ mysql mysql;public: int errornum; string errorte

c++连接使用mysql,供大家参考,具体内容如下

定义mysqlcon类

  class mysqlcon  {   mysql mysql;  public:   int errornum;   string errortext;  public:   //初始化   mysqlcon();   //关闭数据库   ~mysqlcon();   //链接数据库   bool openconn(const char* host,const char* username,const char* pwd,const char* dbname,unsigned port=0);   void geterrortext();//获取错误文本   void close();//关闭数据库   bool executesql(const char* sql);//使用sql语句,无法接收数据   bool qureysql(const char* sql, vector<vector<string>>& resultset);//使用sql语句并接收数据(select语句)  };

初始化操作

  mysqlcon::mysqlcon()  {   if (mysql_library_init(0, nullptr, nullptr))    {   cout << "capi初始化失败" << std::endl;   getchar();   exit(1);   }   if (mysql_init(&mysql)==nullptr)   {   cout << "初始化数据库变量失败" << std::endl;   getchar();   exit(1);   }   if (mysql_options(&mysql, mysql_set_charset_name, "gbk"))   {   cout << "设置连接选项失败" << std::endl;   getchar();   exit(1);   }  }

连接到mysql服务器

  //参数分别为主机,用户名,密码,数据库名,端口号  bool mysqlcon::openconn(const char* host, const char* username, const char* pwd, const char* dbname, unsigned port)  {   //连接数据库   if (mysql_real_connect(&mysql, host, username, pwd, dbname, port, nullptr, 0)==nullptr)   {   cout << "连接到mysql服务器失败" << std::endl;   //获取错误文本   geterrortext();   exit(1);   return false;   }   return true;     }

获取mysql错误信息

  void mysqlcon::geterrortext()  {   //获取错误代码   errornum = mysql_errno(&mysql);   //获取错误文本   errortext = mysql_error(&mysql);   //打印错误代码   cout << "error num: " << errornum << std::endl;   //打印错误文本   cout << "error text: " << errortext << std::endl;   getchar();  }

c++中使用sql语句

  bool mysqlcon::executesql(const char* sql)  {   //使用sql语句但无法接收数据   if (mysql_real_query(&mysql, sql, strlen(sql)))   {   geterrortext();   return false;   }   return true;  }

  bool mysqlcon::qureysql(const char* sql, vector<vector<string>>& resultset)  {   //使用sql语句并接收数据至vector容器   if (mysql_real_query(&mysql, sql, strlen(sql)))   {   geterrortext();   return false;   }   //创建一个mysql结果集   mysql_res* result = mysql_store_result(&mysql);   //获取行和列的总数   unsigned int rows = mysql_num_rows(result);   unsigned int cols = mysql_num_fields(result);   //用于记录结果集中的一条数据   mysql_row row;   while (row = mysql_fetch_row(result))   {   //创建一个vector容器用于储存row中的数据   vector<string> linedate;   for (int i = 0; i < cols; i++)   {   if (row[i])   {   //将row中每一列的数据存入linedate中   linedate.push_back(row[i]);   }   else   {   linedate.push_back("");   }   }   //在resultset中存入整行数据   resultset.push_back(linedate);   }   //释放结果集   mysql_free_result(result);   return true;  }

关闭数据库

  void mysqlcon::close()  {   mysql_close(&mysql);  }  mysqlcon::~mysqlcon()  {   close();   mysql_library_end();  }

示例主函数

  int main()  {   mysqlcon c_apiconn;   c_apiconn.openconn("127.0.0.1", "root", "136119", "fancy");   string sql = "use fancy;";   vector<vector<string>> data;   c_apiconn.executesql(sql.c_str());   sql = "select * from fancy.info;";   c_apiconn.qureysql(sql.c_str(), data);   for (int i = 0; i < data.size(); i++)   {   for (int j = 0; j < data[i].size(); j++)   {   cout << data[i][j] << "t";   }   cout << endl;   }   return 0;  }

输出内容

C++连接使用MySQL的方法

以上就是数据库技术:C++连接使用MySQL的方法的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多数据库技术:C++连接使用MySQL的方法,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/816576.html

(0)
上一篇 2021年9月15日
下一篇 2021年9月15日

精彩推荐