C++操作mysql資料庫

來源:互聯網
上載者:User

標籤:init   sock   一個   dll   控制台   style   clu   com   ima   

今天下午閑著沒事幹,組長讓我熟悉下C++串連資料庫,並對其進行操作,整個過程還算順利,為了記憶和下次使用,現把整個過程記錄下來:

1.安裝mysql

2.建立C++控制台程式,建立CPP源檔案,如:sqlconn.cpp

3.在工程項目中屬性->c/C++->常規->附加元件封裝含目錄中添加mysql安裝目錄中的MySQL\MySQL\MySQL Server 5.7\include

  4.添加庫目錄

 5.添加依賴項” libmysql.lib”

 

6.將運行平台改為X64(這步很重要,不然編譯時間會報錯 )

7.在源檔案中加入標頭檔:

#include <winsock.h> //注意順序,要放在mysql.h前
#include <mysql.h>//控制台項目中要在mysql.h之前include <winsock.h>

8.編寫自己的資料庫操作程式

樣本:

void test1()
{
 MYSQL *pConn;
 pConn = mysql_init(NULL);
 //第2、3、4、5參數的意思分別是:伺服器位址、使用者名稱、密碼、資料庫名,第6個為mysql連接埠號碼(0為預設值3306)
 if(!mysql_real_connect(pConn,"localhost","root","root","test",0,NULL,0))
 {  
  printf("無法串連資料庫:%s",mysql_error(pConn));
  return;
 }
 mysql_query(pConn,"set names gbk");//防止亂碼。設定和資料庫的編碼一致就不會亂碼
 //SET NAMES x 相當於 SET character_set_client = x;SET character_set_results = x;SET character_set_connection = x;
 //寫set character set gbk;查詢不會亂碼,但是參數化插入會報錯。而set names gbk則都不會亂碼


 //mysql_real_query比mysql_query多了個參數: 字串query的長度, 所以適合有位元據的query, 而mysql_query的字串query不能包含二進位,因為它以\0為結尾
 //mysql_query() 不能傳二進位BLOB欄位,因為二進位資訊中的\0會被誤判為語句結束。 mysql_real_query() 則可以。
 if(mysql_query(pConn,"select * from persons"))
 {
  printf("查詢失敗:%s",mysql_error(pConn));
  return;
 }

 //mysql_store_result是把查詢結果一次性取到用戶端的離線資料集,當結果比較大時耗記憶體。
 //mysql_use_result則是查詢結果放在伺服器上,用戶端通過指標逐行讀取,節省用戶端記憶體。但是一個MYSQL*串連同時只能有一個未關閉的mysql_use_result查詢
 MYSQL_RES *result = mysql_store_result(pConn);
 MYSQL_ROW row;
 while(row = mysql_fetch_row(result))
 {
  printf("%s %s\n",row[1],row[2]);
 }

 mysql_free_result(result);
 mysql_close(pConn);
}

9.將mysq目錄….. \MySQL\MySQL Server 5.7\lib 下的libmysql.dll放到產生的exe目錄下,編譯執行即可。

 

參考:

1.http://www.cnblogs.com/rupeng/archive/2012/10/06/2712841.html

2.http://bbs.csdn.net/topics/390523114

 

C++操作mysql資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.