在計算機編程中,C語言可以說是最基礎也是最底層的一種編程語言。它直接對硬件進行訪問,無論是嵌入式系統還是常規的計算機程序,都可以廣泛應用。而另一方面,MySQL數據庫則是最流行的關系型數據庫之一,因其開源、高效、易用的特性而備受青睞。
在實際工作中,我們經常需要將C程序與MySQL數據庫進行交互,以便在程序中使用數據庫中存儲的數據。下面,我們來看一個簡單的例子,來演示如何使用C語言連接MySQL數據庫。
#include<stdio.h> #include<mysql.h> int main() { MYSQL * conn; MYSQL_RES * res; MYSQL_ROW row; //初始化數據庫連接 conn = mysql_init(NULL); //連接數據庫 mysql_real_connect(conn, "localhost", "root", "password", "test", 0, NULL, 0); //執行SQL語句 mysql_query(conn, "SELECT * FROM student"); //獲取查詢結果 res = mysql_store_result(conn); //輸出查詢結果 while (row = mysql_fetch_row(res)) { printf("id: %s, name: %s, score: %s\n", row[0], row[1], row[2]); } //釋放資源 mysql_free_result(res); mysql_close(conn); return 0; }
如上所示,我們首先需要include進來兩個庫文件:stdio.h和mysql.h,前者是C語言的標準庫,用于輸入輸出操作;后者則是MySQL提供的C語言接口庫。
在主函數中,我們先聲明三個變量:conn、res和row,分別代表MySQL連接、查詢結果和查詢出的一行數據。由于這些變量都是在MySQL庫中定義的,因此需要在前面標明其類型為MYSQL、MYSQL_RES和MYSQL_ROW。
然后,我們通過mysql_init(NULL)來初始化conn
到一個默認值,并將其用mysql_real_connect函數連接到數據庫。其中,第一個參數代表連接的MySQL結構體,第二個參數代表主機地址,第三個參數代表用戶名,第四個參數代表密碼,第五個參數代表要連接的數據庫,最后兩個參數缺省為0。
接著,我們可以使用mysql_query函數執行一條SQL語句,查詢數據庫中的student表中的所有數據。
mysql_store_result函數會返回一個結果集,并將其賦值給res
。我們可以使用mysql_fetch_row函數來逐行獲取查詢結果,并將其輸出到屏幕上。當最后一個結果集被處理完后,我們可以使用mysql_free_result函數來釋放內存空間。
最后,使用mysql_close函數關閉MySQL的連接,并返回0。
以上就是使用C語言連接MySQL數據庫的一個簡單例子。實際上,通過C語言接口,我們可以在程序中使用SQL語句來查詢、插入、更新、刪除數據庫中的數據,以及執行其他的數據庫操作。這無疑為我們開發高效、健壯的應用程序提供了極大的便利。