在Linux C中,連接MySQL數據庫是非常常見的任務,下面我們將學習如何使用C語言連接MySQL并執行基本的操作。
我們使用MySQL C API可以輕松地連接MySQL數據庫。首先,我們需要在Linux上安裝MySQL Connector/C,這個庫是使用C語言編寫的,并提供了一些函數和結構體,使得C語言能夠訪問和操作MySQL數據庫。
sudo apt-get install libmysqlclient-dev
安裝完畢后,我們需要在程序中包含MySQL頭文件:
#include <mysql/mysql.h>
然后,我們需要定義MySQL連接和MySQL結果集,如下所示:
MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row;
然后,我們需要初始化MySQL連接,并連接到數據庫:
conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); }
在這里,我們使用mysql_real_connect()函數連接MySQL。這個函數有七個參數,分別為:
- MySQL連接
- 主機名稱
- 用戶名稱
- 用戶密碼
- 數據庫名稱
- 端口號(默認為0)
- Unix套接字/PIPATH名稱(默認為NULL)
- 連接標志(默認為0)
如果連接失敗,我們將輸出錯誤信息并退出程序。
連接成功后,我們可以執行MySQL查詢并取回結果:
if (mysql_query(conn, "SELECT * FROM table")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn);
在這里,我們使用mysql_query()函數執行MySQL查詢。如果查詢失敗,我們將輸出錯誤信息并退出程序。查詢成功后,我們使用mysql_use_result()函數從MySQL中取回結果。
最后,我們可以從結果中獲取行數據:
while ((row = mysql_fetch_row(res)) != NULL) { printf("%s\n", row[0]); } mysql_free_result(res); mysql_close(conn);
在這里,我們使用mysql_fetch_row()函數逐行獲取結果,并輸出第一列的數據。最后,我們使用mysql_free_result()和mysql_close()函數關閉結果集和MySQL連接。
這樣,我們就學習了如何在Linux C中連接MySQL數據庫。此外,我們也可以使用MySQL C API執行插入、更新、刪除等其它操作,這些操作都可以使用類似的方式實現,有興趣的讀者可以自行學習。