MySQL 是一種廣泛應(yīng)用的開源關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它可以被用來存儲(chǔ)、組織和處理大量數(shù)據(jù)。在 C 語言中,我們可以使用 MySQL C API 來訪問 MySQL 數(shù)據(jù)庫(kù)。
在使用 MySQL C API 操作 MySQL 數(shù)據(jù)庫(kù)之前,我們需要進(jìn)行以下幾個(gè)步驟:
mysql_init() // 初始化 MySQL 對(duì)象 mysql_real_connect() // 連接到 MySQL 數(shù)據(jù)庫(kù)服務(wù)器 mysql_query() // 執(zhí)行 SQL 語句 mysql_store_result() // 獲取查詢結(jié)果集 mysql_fetch_row() // 獲取一行查詢結(jié)果 mysql_free_result() // 釋放查詢結(jié)果集 mysql_close() // 關(guān)閉 MySQL 連接
以下是一個(gè)使用 MySQL C API 操作 MySQL 數(shù)據(jù)庫(kù)的示例:
#include <mysql.h> #include <stdio.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *database = "test"; char *table = "student"; char *query = "SELECT * FROM student"; conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "root", "password", database, 0, NULL, 0)) { printf("Error: %s\n", mysql_error(conn)); return 1; } if (mysql_query(conn, query)) { printf("Error: %s\n", mysql_error(conn)); return 1; } res = mysql_store_result(conn); while ((row = mysql_fetch_row(res))) { printf("%s %s %s %s\n", row[0], row[1], row[2], row[3]); } mysql_free_result(res); mysql_close(conn); return 0; }
在這個(gè)示例中,我們首先初始化了 MySQL 對(duì)象 conn,然后使用 mysql_real_connect() 函數(shù)連接到我們的數(shù)據(jù)庫(kù)服務(wù)器。隨后我們使用 mysql_query() 函數(shù)執(zhí)行了一條 SELECT 語句,并使用 mysql_store_result() 函數(shù)獲取查詢結(jié)果集。最后,我們使用 mysql_fetch_row() 函數(shù)迭代結(jié)果集中的每一行,并對(duì)每一行的各個(gè)字段進(jìn)行了打印。