MySQL是一種流行的關系型數據庫管理系統,它是開源的,使用C語言編寫,能夠在多種操作系統上運行。本文將介紹如何使用C語言操作MySQL數據庫的查詢操作。
首先,我們需要安裝MySQL C API,它是一個C語言編寫的庫,可以通過API來操作MySQL數據庫。在Linux上,可以通過以下命令安裝:
sudo apt-get install libmysqlclient-dev
接下來,我們需要連接到MySQL數據庫。在C語言中,我們通過MYSQL結構體來表示數據庫連接。如下所示:
MYSQL *conn; conn = mysql_init(NULL); mysql_real_connect(conn, host, user, password, database, port, NULL, 0);
其中,host表示數據庫服務器的IP地址或者域名,user表示連接數據庫的用戶名,password表示連接數據庫的密碼,database表示要連接的數據庫名稱,port表示連接數據庫的端口號。
連接到數據庫之后,我們就可以執行SQL語句了。在C語言中,我們通過mysql_query函數來執行SQL語句。如下所示:
char query[100]; sprintf(query, "select * from employee where name = '%s'", name); mysql_query(conn, query);
其中,query表示要執行的SQL語句,name表示要查詢的員工姓名。執行完SQL語句后,我們可以通過mysql_store_result函數來獲取查詢結果。如下所示:
MYSQL_RES *result; result = mysql_store_result(conn); if (result == NULL) { printf("error: %s\n", mysql_error(conn)); return; } MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { printf("id: %s, name: %s, age: %s\n", row[0], row[1], row[2]); }
其中,mysql_fetch_row函數用于遍歷查詢結果集,返回的是一個MYSQL_ROW結構體,可以通過它來訪問每一行數據的具體值。在本例中,我們輸出了每個員工的ID、姓名和年齡。
最后,當我們完成了數據庫操作后,需要使用mysql_close函數關閉數據庫連接。如下所示:
mysql_close(conn);
完整的MySQL查詢操作代碼如下:
#include#include #include int main(int argc, char *argv[]) { MYSQL *conn; conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "root", "password", "employee", 0, NULL, 0); char *name = argv[1]; char query[100]; sprintf(query, "select * from employee where name = '%s'", name); mysql_query(conn, query); MYSQL_RES *result; result = mysql_store_result(conn); if (result == NULL) { printf("error: %s\n", mysql_error(conn)); return -1; } MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { printf("id: %s, name: %s, age: %s\n", row[0], row[1], row[2]); } mysql_close(conn); return 0; }