MySQL是一個開源的關系型數據庫,常被用于Web應用的開發。在C語言中,可以使用MySQL C API來連接MySQL數據庫,實現數據的讀寫。這個API常常稱為MySQL客戶端。
#includeint main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "password"; char *database = "test"; conn = mysql_init(NULL); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { printf("連接數據庫失敗:%s\n", mysql_error(conn)); return 1; } if (mysql_query(conn, "SELECT * FROM user")) { printf("查詢失敗:%s\n", mysql_error(conn)); return 1; } res = mysql_store_result(conn); while (row = mysql_fetch_row(res)) { printf("%s %s %s\n", row[0], row[1], row[2]); } mysql_free_result(res); mysql_close(conn); return 0; }
上面的代碼展示了如何使用MySQL C API查詢數據庫中的數據。首先要設置連接參數,包括主機名、用戶名、密碼、數據庫名等。然后,使用mysql_real_connect函數連接數據庫。如果連接失敗,可以通過mysql_error函數獲取失敗原因。接下來,使用mysql_query函數執行SQL查詢語句。在這個例子中,我們執行了一個簡單的SELECT * FROM user查詢。如果查詢失敗,同樣可以使用mysql_error函數獲取失敗原因。使用mysql_store_result函數獲取查詢結果,并使用mysql_fetch_row函數獲取每一行數據。最后,使用mysql_free_result函數釋放內存,使用mysql_close函數關閉連接。如果沒有出現錯誤,程序將會打印出查詢結果。
MySQL C API還提供了許多其他的函數,可以實現不同的功能。例如,可以使用mysql_real_escape_string函數轉義字符串,避免SQL注入攻擊。也可以使用mysql_query函數執行更新、插入、刪除等操作。除了C語言,MySQL還提供了Python、PHP、Java等語言的客戶端。