婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > C++連接使用MySQL的方法

C++連接使用MySQL的方法

熱門標簽:許昌外呼增值業務線路 申請400電話電話價格 臨沂做地圖標注 石家莊400電話辦理公司 地圖標注客戶付款 宜賓全自動外呼系統廠家 新鄉智能外呼系統好處 咸陽防封電銷卡 廣東400企業電話申請流程

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, vectorvectorstring>> 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, vectorvectorstring>> 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中的數據
 vectorstring> 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;";
 vectorvectorstring>> 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數據庫的兩種方法小結
  • Eclipse中C++連接mysql數據庫
  • C++使用MySQL-Connector/C++連接MySQL出現LNK2019錯誤的解決方法
  • C/C++ 連接MySql數據庫的方法
  • C++連接mysql的方法(直接調用C-API)
  • C++利用MySQL API連接和操作數據庫實例詳解
  • c++連接mysql5.6的出錯問題總結
  • C++與mysql連接遇到的問題匯總
  • C++用mysql自帶的頭文件連接數據庫
  • c++連接mysql數據庫的兩種方法(ADO連接和mysql api連接)

標簽:鷹潭 日照 臺灣 鎮江 貴州 合肥 北京 阜新

巨人網絡通訊聲明:本文標題《C++連接使用MySQL的方法》,本文關鍵詞  C++,連接,使用,MySQL,的,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《C++連接使用MySQL的方法》相關的同類信息!
  • 本頁收集關于C++連接使用MySQL的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 泌阳县| 公主岭市| 明水县| 都昌县| 原平市| 临江市| 体育| 尼勒克县| 桐梓县| 泸定县| 济宁市| 阿拉善左旗| 扎鲁特旗| 安多县| 易门县| 石泉县| 岳普湖县| 临泉县| 通河县| 漯河市| 綦江县| 荃湾区| 民丰县| 陇川县| 上饶县| 井陉县| 山阴县| 宁波市| 志丹县| 天等县| 郴州市| 临沭县| 新宾| 安阳市| 昌平区| 北宁市| 五常市| 新巴尔虎左旗| 铜川市| 惠水县| 永丰县|