首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

Windows 環境下以 C 語言連接 MySQL 完整教學

     編輯:關於C

環境準備

  1. 複製動態連結庫:將 MySQL 安裝目錄下的 libmySQL.dll 複製至 C:\Windows\System32;若為 64 位元系統,另需複製至 C:\Windows\SysWOW64。
  2. 設定標頭檔路徑:在 Visual Studio 專案屬性的「C/C++ → 一般 → 附加包含目錄」加入 MySQL include 目錄。
  3. 連結匯入庫:在「連結器 → 輸入 → 附加相依性」加入 libmysql.lib。

完整範例程式

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

MYSQL mysql, *sock;

int main(void) {
    const char *host     = "127.0.0.1";
    const char *user     = "root";
    const char *passwd   = "your_password";
    const char *db       = "testmysql";
    unsigned int port    = 3306;
    const char *unix_sock = NULL;
    unsigned long flag   = 0;

    const char *query = "SELECT * FROM test";

    MYSQL_RES *res;
    MYSQL_ROW  row;

    mysql_init(&mysql);
    if (!(sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_sock, flag))) {
        fprintf(stderr, "連線失敗:%s\n", mysql_error(&mysql));
        exit(1);
    }
    puts("連線 MySQL 成功!");

    if (mysql_query(&mysql, query)) {
        fprintf(stderr, "查詢失敗:%s\n", mysql_error(&mysql));
        exit(1);
    }

    if (!(res = mysql_store_result(&mysql))) {
        fprintf(stderr, "儲存結果集失敗\n");
        exit(1);
    }

    while ((row = mysql_fetch_row(res))) {
        printf("name: %s\tage: %s\n", row[0], row[1]);
    }

    mysql_free_result(res);
    mysql_close(sock);
    system("pause");
    return 0;
}

常見連結錯誤排除

若出現 error LNK2019: 無法解析的外部符號 _mysql_init@4,請確認步驟 3 是否正確加入 libmysql.lib,且專案目標平台(x86/x64)與庫檔架構一致。

執行結果示意

程式會印出資料表 test 中的所有列,格式為 name: xxx age: yyy。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved