linux下c mysql程式設計函式總結2

2021-07-10 14:17:57 字數 2721 閱讀 6392

說是c++下的mysql程式設計,其實用的還是mysql自帶的c api,因為在我學習的乙份遊戲的c++源**中,就是直接使用的c api,還有乙份是基於c++封裝的mysq++ api包,這個我還不了解,以後有時間研究一下。

在對mysql的操作中,主要需要熟悉幾個api,這裡我總結了一下我遇到的常用的api以及對應的資料結構,最後舉乙個例子表明這些api的使用。

常用mysql api

[cpp]view plain

copy

mysql* mysql_init(mysql* mysql)

//連線控制代碼,必須初始化之後才能使用

mysql* mysql_real_connect(mysql* mysql, const

char

* host, 

const

char

*user, 

const

char

* passwd, 

const

char

* db, unsigned 

intport, 

const

char

* unix_socket, unsigned 

long

client_flag) 

//連線資料庫,

intmysql_query(mysql* mysql, 

const

char

* query) 

//查詢函式,成功返回零,否則返回錯誤型別非零值。

const

char

* mysql_error(mysql* mysql) 

//返回最近一次呼叫失敗的錯誤訊息(返回的是字串訊息)

unsigned int

mysql_errno(mysql* mysql) 

//返回最近一次呼叫失敗的錯誤代號(返回的是數字代號)

mysql_res* mysql_store_result(mysql* mysql) //將資料庫中查詢(mysql_query)得到的結果(集合)存放在mysql_res結構中

unsigned int

mysql_num_fields(mysql_res* res) 

//返回結果集中的列的數目

mysql_row* mysql_fetch_row(mysql_res* res) //返回結果集(mysql_res)的當前行的結果

unsigned int

mysql_num_rows(mysql_res* res) 

//返回結果集中的行的數目

unsigned long

* mysql_fetch_lengths(mysql_res* res) 

//返回結果集中各列的長度(可用於字串拷貝,代替strlen函式)

void

mysql_close(mysql* mysql) 

//資料庫使用完畢之後應該進行關閉

相關資料結構

mysql: 代表乙個資料庫連線的控制代碼

[cpp]view plain

copy

"font-size:14px;"

>mysql_res:代表查詢結果集,資料結構如下  

typedef

struct

st_mysql_res  mysql_res;  

"font-size:14px;"

>mysql_field:包含各欄位(列)的資訊  

typedef

struct

st_mysql_field  mysql_field;    

"font-size:14px;"

>mysql_row:通俗的講就是查詢結果集(mysql_res)的一行資料  

typedef

char

**mysql_row;

/* 返回的每一行的值,全部用字串來表示*/

示例

[cpp]view plain

copy

"code"

class

="cpp"

>#include 

#include 

using

namespace

std;  

intmain()  

const

char

* query = 

"select * from road"

if(!mysql_query(mysql, query))  

mysql_res res;  

mysql_row row;  

intnumfield = 0;  

unsigned long

*len = null;  

char

data[max_row][max_datasize];  

if(res = mysql_store_result(mysql))  

j++;  

}  }  

return

0;  

}

C mySQL程式設計 linux

輸入相關設定,就能顯示查詢結果。今天在linux下用c 封裝了一下mysql資料庫的連線,在執行 mysql query connection,sql str.c str 時,查詢得到的漢字是亂碼。最後在網上查閱資料發現需要設定讀去資料庫的編碼格式 mysql query connection,se...

Linux下c mysql程式的編譯命令

最好用 gcc o test test.c mysql config cflags libs 其它的編譯命令 gcc o test test.c i usr include mysql l usr lib mysql lmysqlclient lz lm gcc o test test.c i us...

c mysql程式設計 C 資料庫程式設計

下面給出兩段典型的資料庫連線的例子。在此之前,請在程式頭部using處新增using system.data.sqlclient或system.data.oledb,以保證資料庫訪問時用到的命名空間能引用 sql server資料訪問 string strconn integrated securi...