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