MySQL 數據庫編程-連接數據庫

在做程序開發時,總免不了要和數據庫打交道,在這裏分享一個連接 ,查詢MySQL 數據庫的小程序:

#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>

int main()
{
        char server[] = "localhost";
        char user[] = "root";
        char passwd[] = "root.123";
        char database[] = "mysql";

        MYSQL *conn = mysql_init(NULL);// 初始化數據庫環境      
        if(!conn) {
                fprintf(stderr, "Failed to initialize mysql\n");
                exit(1);
        }   
        const unsigned int timeout = 7;
        if(mysql_options(conn, MYSQL_OPT_CONNECT_TIMEOUT, &timeout)) //設置連接選項,這裏設置連接超時爲7s
        {   
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }   

        if(!mysql_real_connect(conn, server, user, passwd, database, 0, NULL, 0))// 連接數據庫
        {   
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }   

        if(mysql_query(conn, "show tables"))// 執行 SQL 命令,這裏執行“show tables”即顯示當前數據庫下所有的表
        {   
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }   

        MYSQL_RES *res = mysql_use_result(conn);// 獲得 result set
        if(!res) {
                fprintf(stderr, "Error: %s\n", mysql_error(conn));
                exit(1);
        }   

        MYSQL_ROW row;
        printf("MYSQL tables in database <mysql>:\n");
        printf("*********************************\n");
        while((row=mysql_fetch_row(res))) { // 將結果輸出到 stdout
                printf("%s\n", row[0]);
        }   
        printf("*********************************\n");
        mysql_free_result(res); // 清理用於存儲 result set 的內存

        mysql_close(conn);//關閉數據庫連接
        printf("Finish Loading|\n");
        return 0;
}

編譯運行:

gcc -o test test.c -L/usr/local/mysql/lib -lmysqlclient

可以查看 mysql 中 所有的表:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章