Linux C語言程序開發(fā)中,數(shù)據(jù)庫操作是必不可少的一部分。MySQL作為開源的關系型數(shù)據(jù)庫管理系統(tǒng),被廣泛地應用在Web開發(fā)、數(shù)據(jù)分析等領域。在Linux平臺下,我們可以使用C語言編寫程序來連接MySQL數(shù)據(jù)庫,并進行相關的操作。
在Linux下使用C語言連接MySQL數(shù)據(jù)庫需要首先安裝MySQL的C語言開發(fā)庫。具體安裝流程可以參考MySQL官方文檔。安裝完成后,我們需要在C語言程序中引入數(shù)據(jù)庫相關頭文件,如下所示:
#include <mysql/mysql.h>
在引入頭文件后,我們需要定義MYSQL結構體和MYSQL_RES結構體變量,分別用來建立與數(shù)據(jù)庫的連接和獲取SQL語句執(zhí)行結果:
MYSQL conn; // MySQL連接 MYSQL_RES *res; // MySQL執(zhí)行結果 MYSQL_ROW row; // 字符串數(shù)組,用于存儲SQL語句執(zhí)行結果的一行數(shù)據(jù)
接下來我們需要使用mysql_init()函數(shù)初始化MySQL連接,并使用mysql_real_connect()函數(shù)連接到指定的MySQL數(shù)據(jù)庫。這里需要填寫連接數(shù)據(jù)庫所需要的參數(shù),包括用戶名、密碼、數(shù)據(jù)庫名、端口號等:
mysql_init(&conn); // 初始化MySQL連接 if(!mysql_real_connect(&conn, "localhost", "root", "password", "database_name", 0, NULL, 0)) { printf("連接到MySQL數(shù)據(jù)庫失敗: %s\n", mysql_error(&conn)); return 1; }
連接成功后,我們可以使用mysql_query()函數(shù)執(zhí)行SQL查詢語句,并使用mysql_store_result()函數(shù)獲取查詢結果。獲取結果后,我們可以使用mysql_num_rows()和mysql_num_fields()函數(shù)分別獲取查詢結果的行數(shù)和列數(shù),并使用mysql_fetch_row()函數(shù)獲取每一行數(shù)據(jù):
if (mysql_query(&conn, "SELECT * FROM table_name")) { printf("查詢失敗:%s\n", mysql_error(&conn)); return 1; } res = mysql_store_result(&conn); int rows = mysql_num_rows(res); // 查詢結果行數(shù) int cols = mysql_num_fields(res); // 查詢結果列數(shù) while ((row = mysql_fetch_row(res))) { for(int i = 0; i < cols; i++) { printf("%s ", row[i]); } printf("\n"); }
最后,我們需要使用mysql_free_result()函數(shù)釋放查詢結果內存,并使用mysql_close()函數(shù)關閉MySQL連接:
mysql_free_result(res); // 釋放查詢結果內存 mysql_close(&conn); // 關閉MySQL連接
以上就是Linux C語言連接MySQL數(shù)據(jù)庫的基本流程,希望對大家有所幫助。