在進行MySQL數據庫操作時,經常需要查詢數據庫中有多少數據。C語言作為一種能夠操作數據庫的編程語言,也可以通過調用MySQL提供的API來實現查詢數據庫中數據數量的功能。
#include <stdio.h> #include <stdlib.h> #include <mysql/mysql.h> int main(int argc, char const *argv[]) { MYSQL mysql; mysql_init(&mysql); if(!mysql_real_connect(&mysql, "localhost", "username", "password", "database", 0, NULL, 0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); return 1; } if(mysql_query(&mysql, "SELECT COUNT(*) FROM table")) { fprintf(stderr, "Failed to query database: Error: %s\n", mysql_error(&mysql)); mysql_close(&mysql); return 1; } MYSQL_RES *result = mysql_store_result(&mysql); MYSQL_ROW row = mysql_fetch_row(result); long int count = atoi(row[0]); printf("The count of data in database is %d.\n", count); mysql_free_result(result); mysql_close(&mysql); return 0; }
以上代碼使用了MySQL C API。首先,通過調用`mysql_init()`函數來初始化MYSQL對象。接著,通過調用`mysql_real_connect()`函數連接到數據庫。如果連接失敗,則會輸出錯誤信息,并返回1。如果連接成功,則會調用`mysql_query()`函數執行SQL語句。如果執行查詢語句時發生錯誤,則會輸出錯誤信息,并返回1。
調用`mysql_store_result()`函數可以將查詢結果存儲在MYSQL_RES對象中。調用`mysql_fetch_row()`函數可以檢索結果集的下一行,并將其作為一個MYSQL_ROW對象返回。因為查詢結果只有一行一列,所以可以通過調用`atoi()`函數將結果轉換為整數類型。最后,輸出數據數量,并釋放結果集和MYSQL對象。