数据库 · 10 11 月, 2024

使用C語言實現數據庫查詢與表格返回 (c 查詢數據庫並返回表)

使用C語言實現數據庫查詢與表格返回

在當今的數據驅動時代,數據庫的使用變得越來越普遍。無論是企業還是個人開發者,能夠有效地查詢數據庫並返回結果都是一項重要的技能。本文將探討如何使用C語言來實現數據庫查詢並返回表格數據,並提供相應的代碼示例。

數據庫連接

在開始查詢之前,首先需要建立與數據庫的連接。C語言通常使用MySQL C API來與MySQL數據庫進行交互。以下是建立連接的基本步驟:


#include 

MYSQL *conn;
conn = mysql_init(NULL);
if (conn == NULL) {
    fprintf(stderr, "mysql_init() failedn");
    return EXIT_FAILURE;
}

if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
    fprintf(stderr, "mysql_real_connect() failedn");
    mysql_close(conn);
    return EXIT_FAILURE;
}

在上述代碼中,我們首先初始化一個MYSQL結構,然後使用mysql_real_connect函數來連接到數據庫。請根據實際情況替換“localhost”、“user”、“password”和“database”。

執行查詢

連接成功後,我們可以執行SQL查詢。以下是執行查詢並獲取結果的示例:


if (mysql_query(conn, "SELECT * FROM table_name")) {
    fprintf(stderr, "SELECT * failed. Error: %sn", mysql_error(conn));
    mysql_close(conn);
    return EXIT_FAILURE;
}

MYSQL_RES *result = mysql_store_result(conn);
if (result == NULL) {
    fprintf(stderr, "mysql_store_result() failed. Error: %sn", mysql_error(conn));
    mysql_close(conn);
    return EXIT_FAILURE;
}

在這段代碼中,我們使用mysql_query函數執行一個SELECT查詢,然後使用mysql_store_result函數來獲取結果集。

處理查詢結果

獲取結果集後,我們需要遍歷結果並將其顯示為表格。以下是如何處理查詢結果的示例:


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(conn);

在這段代碼中,我們首先獲取結果集中的字段數量,然後使用mysql_fetch_row函數逐行遍歷結果。每一行的數據將被打印出來,並以空格分隔。

完整示例

綜合以上代碼,以下是一個完整的C語言程序示例,實現了數據庫查詢並返回結果:


#include 
#include 
#include 

int main() {
    MYSQL *conn;
    MYSQL_RES *result;
    MYSQL_ROW row;

    conn = mysql_init(NULL);
    if (conn == NULL) {
        fprintf(stderr, "mysql_init() failedn");
        return EXIT_FAILURE;
    }

    if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
        fprintf(stderr, "mysql_real_connect() failedn");
        mysql_close(conn);
        return EXIT_FAILURE;
    }

    if (mysql_query(conn, "SELECT * FROM table_name")) {
        fprintf(stderr, "SELECT * failed. Error: %sn", mysql_error(conn));
        mysql_close(conn);
        return EXIT_FAILURE;
    }

    result = mysql_store_result(conn);
    if (result == NULL) {
        fprintf(stderr, "mysql_store_result() failed. Error: %sn", mysql_error(conn));
        mysql_close(conn);
        return EXIT_FAILURE;
    }

    int num_fields = mysql_num_fields(result);
    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(conn);
    return EXIT_SUCCESS;
}

總結

使用C語言查詢數據庫並返回表格數據是一個相對簡單的過程,只需幾個步驟即可完成。通過正確的API調用,我們可以輕鬆地連接到數據庫、執行查詢並處理結果。這種能力對於開發各種應用程序至關重要,無論是小型項目還是大型系統。

如果您正在尋找高效的 VPS 解決方案來運行您的數據庫應用,Server.HK 提供了多種選擇,適合不同需求的用戶。無論是 香港VPS 還是其他服務,我們都能為您提供穩定的支持。