MySQL是一個開源的關(guān)系型數(shù)據(jù)庫,常被用于Web應(yīng)用的開發(fā)。在C語言中,可以使用MySQL C API來連接MySQL數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)的讀寫。這個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("連接數(shù)據(jù)庫失敗:%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查詢數(shù)據(jù)庫中的數(shù)據(jù)。首先要設(shè)置連接參數(shù),包括主機名、用戶名、密碼、數(shù)據(jù)庫名等。然后,使用mysql_real_connect函數(shù)連接數(shù)據(jù)庫。如果連接失敗,可以通過mysql_error函數(shù)獲取失敗原因。接下來,使用mysql_query函數(shù)執(zhí)行SQL查詢語句。在這個例子中,我們執(zhí)行了一個簡單的SELECT * FROM user查詢。如果查詢失敗,同樣可以使用mysql_error函數(shù)獲取失敗原因。使用mysql_store_result函數(shù)獲取查詢結(jié)果,并使用mysql_fetch_row函數(shù)獲取每一行數(shù)據(jù)。最后,使用mysql_free_result函數(shù)釋放內(nèi)存,使用mysql_close函數(shù)關(guān)閉連接。如果沒有出現(xiàn)錯誤,程序?qū)蛴〕霾樵兘Y(jié)果。
MySQL C API還提供了許多其他的函數(shù),可以實現(xiàn)不同的功能。例如,可以使用mysql_real_escape_string函數(shù)轉(zhuǎn)義字符串,避免SQL注入攻擊。也可以使用mysql_query函數(shù)執(zhí)行更新、插入、刪除等操作。除了C語言,MySQL還提供了Python、PHP、Java等語言的客戶端。