mysql C C 常用API基礎記錄

2021-10-25 03:27:03 字數 3951 閱讀 8860

包含標頭檔案:"mysql.h"

1 資料型別:

mysql:

該結構代表1個資料庫連線的控制代碼。幾乎所有的mysql函式均使用它。不應嘗試拷貝mysql結構。不保證這類拷貝結果會有用。

mysql_res:

該結構代表返回行的查詢結果(select, show, describe, explain)。在本節的剩餘部分,將查詢返回的資訊稱為「結果集」。

mysql_row

這是1行資料的「型別安全」表示。它目前是按照計數位元組字串的陣列實施的。(如果字段值可能包含二進位制資料,不能將其當作由null終結的字串對待,這是因為這類值可能會包含null位元組)。行是通過呼叫mysql_fetch_row()獲得的。

常用資料型別就這三個。

2 api函式

1)mysql* mysql_init(mysql* mysql);

該函式用於初始化mysql結構,必須在任何mysql庫函式前呼叫

引數為null時,將自動分配空間並初始化物件,返回mysql物件指標。

引數不為null時,初始化物件,返回mysql物件指標。

2)int mysql_options(mysql* mysql,enum mysql_option,const void* arg);

該函式用於設定mysql的一些屬性,在mysql_init()函式後呼叫。

一般用於設定系統編碼:

例如:mysql_options(sql, mysql_set_charset_name, 「gbk」);

arg引數的值取決於mysql_option的值

mysql_option的值可以是:

mysql_opt_connect_timeout,

mysql_opt_compress,

mysql_opt_named_pipe,

mysql_init_command,

mysql_read_default_file,

mysql_read_default_group,

mysql_set_charset_dir,

mysql_set_charset_name,

mysql_opt_local_infile,

mysql_opt_protocol,

mysql_shared_memory_base_name,

mysql_opt_read_timeout,

mysql_opt_write_timeout,

mysql_opt_use_result,

mysql_report_data_truncation,

mysql_opt_reconnect,

mysql_plugin_dir,

mysql_default_auth,

mysql_opt_bind,

mysql_opt_ssl_key,

mysql_opt_ssl_cert,

mysql_opt_ssl_ca,

mysql_opt_ssl_capath,

mysql_opt_ssl_cipher,

mysql_opt_ssl_crl,

mysql_opt_ssl_crlpath,

mysql_opt_connect_attr_reset,

mysql_opt_connect_attr_add,

mysql_opt_connect_attr_delete,

mysql_server_public_key,

mysql_enable_cleartext_plugin,

mysql_opt_can_handle_expired_passwords,

mysql_opt_max_allowed_packet,

mysql_opt_net_buffer_length,

mysql_opt_tls_version,

mysql_opt_ssl_mode,

mysql_opt_get_server_public_key,

mysql_opt_retry_count,

mysql_opt_optional_resultset_metadata,

mysql_opt_ssl_fips_mode,

mysql_opt_tls_ciphersuites,

mysql_opt_compression_algorithms,

mysql_opt_zstd_compression_level,

mysql_opt_load_data_local_dir

3)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);

此函式在mysql_options()後呼叫,用於連線到mysql資料庫

說明:在你能夠執行需要有效mysql連線控制代碼結構的任何其它api函式之前,mysql_real_connect() 必須成功完成。

引數:host——必須是主機名或ip位址。如果host是null或字串「localhost」,連線將被視為與本地主機連線。

unix_socket——windows下通常為null, linux、unix 等 posix標準系統一般不為null。

「client_flag」——通常為0,但是,也能將其設定為具有特定功能的標誌組合。

4) int mysql_query(mysql* mysql,const char* stmt_str);

用於執行mysql語句(已被官方棄用)。

補充:mysql_query() 不能用於執行包含二進位制資料的sql查詢語句,此時,你必須使用mysql_real_query()。

如果執行成功將返回0,如果執行錯誤,將返回非0值。

5)int mysql_real_query(mysql* mysql,const char* stmt_str,int stmt_str_length);

用於執行任意mysql語句(官方推薦)。

const char* stmt_str:mysql語句字串。

int stmt_str_length:上乙個引數的長度。

6)mysql_res* mysql_store_result(mysql* mysql);

用於獲取結果集,在mysql_real_query()後呼叫來查詢並返回完整的結果集。

7)mysql_res* mysql_use_result(mysql* mysql);

用於獲取結果集,在mysql_real_query()後呼叫來查詢並返回逐行的結果集。

說明:mysql_use_result() 不像mysql_store_result() 那樣將結果集實際讀取到客戶端。它必須通過對mysql_fetch_row() 的呼叫,對每一行分別進行檢索。這將直接從伺服器讀取結果,而不會將其儲存到臨時表或本地緩衝區內,與mysql_store_result() 相比,速度更快而且使用的記憶體更少。使用mysql_use_result() 時,必須執行mysql_fetch_row() ,直至返回null值。

8) void mysql_free_result(mysql_res* result);

釋放結果集記憶體。

C 基礎常用API

自學api的步驟 1.看名字猜功能 2.看方法描述資訊 3.看引數 型別 名稱 描述資訊 4.看返回值 型別 描述資訊 5.測試去吧 random random new random int str random.next 1,101 a i,j rand.next 0,2 2 隨機生成0和2 實際...

多執行緒基礎概念2 常用api方法

執行緒的生命週期 初始 新建狀態 使用 new 關鍵字和 thread 類或其子類建立乙個執行緒物件後,該執行緒物件就處於初始 新建狀態。它保持這個狀態直到程式 start 這個執行緒。就緒狀態 當執行緒物件呼叫了start 方法之後,該執行緒就進入就緒狀態。就緒狀態的執行緒處於就緒佇列中,要等待j...

陣列常用API

var color red green blue var color2 yellow black brown var color3 color.concat color2 concat 是將引數傳遞進來的陣列內容 拼接到呼叫者後面,不修改原陣列 var color4 color.tostring 陣...