在使用 C 語(yǔ)言連接 MySQL 數(shù)據(jù)庫(kù)進(jìn)行查詢的過程中,需要明確每個(gè)數(shù)據(jù)類型所對(duì)應(yīng)的 MySQL 數(shù)據(jù)類型。
/* 使用 MySQL C API 連接數(shù)據(jù)庫(kù) */ MYSQL mysql; // 定義數(shù)據(jù)庫(kù)連接句柄 mysql_init(&mysql); // 初始化數(shù)據(jù)庫(kù) mysql_real_connect(&mysql, "localhost", "root", "password", "test", 0, NULL, 0); // 連接數(shù)據(jù)庫(kù) /* 執(zhí)行查詢語(yǔ)句 */ MYSQL_RES *result; // 定義結(jié)果集句柄 MYSQL_ROW row; // 定義行數(shù)據(jù) mysql_query(&mysql, "SELECT * FROM student"); // 執(zhí)行查詢語(yǔ)句 result = mysql_store_result(&mysql); // 獲取結(jié)果集 /* 遍歷結(jié)果集 */ while ((row = mysql_fetch_row(result))) { // 獲取每一行數(shù)據(jù) int id = atoi(row[0]); // 將字符串轉(zhuǎn)換為整型 char *name = row[1]; int age = atoi(row[2]); // 輸出數(shù)據(jù) printf("%d %s %d\n", id, name, age); } /* 釋放結(jié)果集 */ mysql_free_result(result); /* 關(guān)閉數(shù)據(jù)庫(kù)連接 */ mysql_close(&mysql);
在上面的代碼中,我們使用了 MySQL C API 提供的函數(shù)來(lái)連接數(shù)據(jù)庫(kù)、查詢數(shù)據(jù)、獲取結(jié)果集并遍歷結(jié)果集。
在獲取每一行數(shù)據(jù)的過程中,我們需要明確每個(gè)數(shù)據(jù)類型在 MySQL 中的數(shù)據(jù)類型,例如:
- 整型:int
- 字符串:char *
- 浮點(diǎn)型:float/double
- 日期時(shí)間型:MYSQL_TIME *
通過了解每個(gè)數(shù)據(jù)類型所對(duì)應(yīng)的 MySQL 數(shù)據(jù)類型,就可以正確地獲取并處理查詢結(jié)果中的數(shù)據(jù)。