說是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...