當前位置:編程學習大全網 - 源碼破解 - c語言讀取mysql庫中的數據的程序頭文件怎麽設置

c語言讀取mysql庫中的數據的程序頭文件怎麽設置

Mysql C API編程步驟

1、首先我們要包含mysql的頭文件,並鏈接mysql動態庫。即添加以下語句:

#include <WinSock2.h> // 進行網絡編程需要winsock2.h

#include <mysql.h>

#pragma comment(lib, “libmysql.lib”)

2、創建MYSQL變量。如:

MYSQL mysql;

3、初始化MYSQL變量。

mysql_init(&mysql);

4、調用mysql_real_connect函數連接Mysql數據庫。mysql_real_connect函數的原型如下:

MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag);

參數說明:mysql–前面定義的MYSQL變量;host–MYSQL服務器的地址;user–登錄用戶名;passwd–登錄密碼;db–要連接的數據庫;port–MYSQL服務器的TCP服務端口;unix_socket–unix連接方式,為NULL時表示不使用socket或管道機制;clientflag–Mysql運行為ODBC數據庫的標記,壹般取0。連接失敗時該函數返回0。

5、調用mysql_real_query函數進行數據庫查詢。mysql_real_query函數的原型如下:

int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);

參數說明:mysql–前面定義的MYSQL變量;q–SQL查詢語句;length–查詢語句的長度。

查詢成功則該函數返回0。

6、通過調用mysql_store_result或mysql_use_result函數返回的MYSQL_RES變量獲取查詢結果數據。

兩個函數的原型分別為:

MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);

MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);

這兩個函數分別代表了獲取查詢結果的兩種方式。第壹種,調用mysql_store_result函數將從Mysql服務器查詢的所有數據都存儲到客戶端,然後讀取;第二種,調用mysql_use_result初始化檢索,以便於後面壹行壹行的讀取結果集,而它本身並沒有從服務器讀取任何數據,這種方式較之第壹種速度更快且所需內存更少,但它會綁定服務器,阻止其他線程更新任何表,而且必須重復執行mysql_fetch_row讀取數據,直至返回NULL,否則未讀取的行會在下壹次查詢時作為結果的壹部分返回,故經常我們使用mysql_store_result。

7、調用mysql_fetch_row函數讀取結果集數據。

上述兩種方式最後都是重復調用mysql_fetch_row函數讀取數據。mysql_fetch_row函數的原型如下:

MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);

參數result就是mysql_store_result或mysql_use_result的返回值。

該函數返回MYSQL_ROW型的變量,即字符串數組,假設為row,則row〔i〕為第i個字段的值。當到結果集尾部時,此函數返回NULL。

8、結果集用完後,調用mysql_free_result函數釋放結果集,以防內存泄露。mysql_free_result函數的原型如下:

void STDCALL mysql_free_result(MYSQL_RES *result);

9、不再查詢Mysql數據庫時,調用mysql_close函數關閉數據庫連接。mysql_close函數的原型為:

void STDCALL mysql_close(MYSQL *sock);

  • 上一篇:單親媽媽電影在線觀看
  • 下一篇:gm版手遊什麽意思
  • copyright 2024編程學習大全網