MySQL是一種非常流行的關系型數據庫,它可以用來存儲和管理大量的數據。對于C語言程序員來說,使用MySQL提供的API可以方便地訪問和操作數據庫。
在C程序中調用MySQL API需要以下兩個步驟:
1. 連接數據庫
MYSQL *con = mysql_init(NULL); if (con == NULL) { fprintf(stderr, "%s\n", mysql_error(con)); exit(1); } if (mysql_real_connect(con, "localhost", "username", "password", NULL, 0, NULL, 0) == NULL) { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); }
上述代碼創建了一個MYSQL連接對象con,并使用mysql_real_connect()函數連接到本地的MySQL數據庫。其中"username"和"password"需要替換成實際的數據庫用戶名和密碼。如果連接不成功,程序會打印錯誤信息并退出。
2. 執行SQL語句
if (mysql_query(con, "SELECT * FROM table_name")) { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } MYSQL_RES *result = mysql_store_result(con); if (result == NULL) { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } int num_fields = mysql_num_fields(result); MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { for(int i = 0; i< num_fields; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf("\n"); } mysql_free_result(result); mysql_close(con);
上述代碼使用mysql_query()函數執行SQL語句,并使用mysql_store_result()函數獲取結果集。如果執行過程中出現錯誤,程序會打印錯誤信息并退出。最后,使用mysql_fetch_row()函數遍歷結果行,并使用mysql_num_fields()函數獲取結果列數。程序輸出結果后,需要使用mysql_free_result()函數釋放結果集,并使用mysql_close()函數關閉連接。
在C程序中調用MySQL API可以方便地訪問和操作數據庫,但也需要注意安全性和錯誤處理。需要遵循良好的編程習慣,并定期維護和更新數據庫。