C語言常常用來實現各種系統級程序或者底層驅動,而MySQL作為一種常見的關系型數據庫,被廣泛使用在各種Web應用中。因此,使用C語言連接MySQL數據庫是極為常見的操作之一。
下面我們演示通過libmysqlclient庫在C語言下鏈接MySQL數據庫的操作:
#include <stdio.h> #include <mysql.h> int main(int argc, char *argv[]) { MYSQL *conn = mysql_init(NULL); if(conn == NULL) { fprintf(stderr, "mysql_init failed\n"); exit(1); } if(mysql_real_connect(conn, "localhost", "username", "password", "database", 0, NULL, 0) == NULL) { fprintf(stderr, "mysql_real_connect failed\n"); mysql_close(conn); exit(1); } if(mysql_query(conn, "SELECT * FROM mytable")) { fprintf(stderr, "mysql_query failed\n"); mysql_close(conn); exit(1); } MYSQL_RES *result = mysql_store_result(conn); if(result == NULL) { fprintf(stderr, "mysql_store_result failed\n"); mysql_close(conn); exit(1); } MYSQL_ROW row; while((row = mysql_fetch_row(result)) != NULL) { printf("%s %s %s\n", row[0], row[1], row[2]); } mysql_free_result(result); mysql_close(conn); return 0; }
上述代碼中使用了標準的libmysqlclient庫,首先使用`mysql_init`函數初始化一個`MYSQL`連接對象,然后使用`mysql_real_connect`函數連接到指定的數據庫。在連接成功后,使用`mysql_query`函數執行一條`SELECT`語句,并使用`mysql_store_result`函數獲取查詢結果集。獲取到結果集后,再使用`mysql_fetch_row`函數逐行獲取結果。最終需要釋放結果集和連接資源。
通過以上代碼,我們可以實現C語言對MySQL數據庫的鏈接和查詢操作。當然,在實際開發中還需要注意處理異常情況,以及在多線程環境下使用互斥鎖等方面的問題。