MySQL C C 程式設計

2021-06-13 19:36:43 字數 1883 閱讀 1826

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

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

常用mysql api

mysql* mysql_init(mysql* mysql)//連線控制代碼,必須初始化之後才能使用

mysql* 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 client_flag) //連線資料庫,

int mysql_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: 代表乙個資料庫連線的控制代碼

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

typedef struct st_mysql_res mysql_res;mysql_field:包含各欄位(列)的資訊

typedef struct st_mysql_field mysql_field;mysql_row:通俗的講就是查詢結果集(mysql_res)的一行資料

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

示例

#include #include using namespace std;

int main()

{ mysql *mysql;

mysql = mysql_init(mysql);

if(!mysql_real_connect(mysql, "localhost", "root", "", "test", 0, null, 0))/*針對的是本地資料庫且無密碼的情況*/

{ cout << "failed to connect to database. error: "<

mysql C C 常用API基礎記錄

包含標頭檔案 mysql.h 1 資料型別 mysql 該結構代表1個資料庫連線的控制代碼。幾乎所有的mysql函式均使用它。不應嘗試拷貝mysql結構。不保證這類拷貝結果會有用。mysql res 該結構代表返回行的查詢結果 select,show,describe,explain 在本節的剩餘部...

MySQL C C 訪問MySQL資料庫

vs2019配置 第一步 開啟mysql的安裝目錄,預設安裝目錄如下 c program files mysql mysql server 8.0,確認 lib 目錄和include 目錄是否存在。第二步 開啟vs2019,新建乙個空工程,控制台應用程式即可,注意 解決方案平台選擇x64 第三步 右...

程式設計,還是程式設計

喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...