c++使用mysql的api連接相關問題

記錄一下自己使用中的相關問題,方便有同樣問題的同學解決。

  • 關於在VS中的各種配置,看這裏,不過需要注意一下,我現在用的mysql版本是5.6的,已經沒有【MySQL Server \lib\opt】這個路徑了,將這一項設置到【MySQL Server \lib】即可

  • 如果出現如下錯誤:
    1>main.obj : error LNK2019: 無法解析的外部符號 _mysql_server_init@12,該符號在函數 _main 中被引用
    1>main.obj : error LNK2019: 無法解析的外部符號 _mysql_init@4,該符號在函數 _main 中被引用
    1>main.obj : error LNK2019: 無法解析的外部符號 _mysql_real_connect@32,該符號在函數 _main 中被引用
    1>main.obj : error LNK2019: 無法解析的外部符號 _mysql_options@12,該符號在函數 _main 中被引用

    因爲按照第一步來的時候,建立的是win32項目,而現在系統、mysql使用的就均是x64的,改成x64即可,操作步驟如下:
    .項目->屬性->配置管理器
    活動解決方案平臺,下拉選新建,出現一個新的對號框,在鍵入選擇新平臺中選擇X64
    學習自這裏

  • 之後可以寫一個簡單的c程序測試一下是否成功
    #include "winsock.h"  
    #include "iostream"  
    #include "mysql.h"  
    #pragma comment(lib, "ws2_32.lib")  
    #pragma comment(lib, "libmysql.lib")  
    using namespace std;  
          
    void main()  
    {  
        MYSQL mydata;  
          
        mysql_library_init(0,NULL,NULL);//初始化MySQL C API庫  
        mysql_init(&mydata);//初始化mydata的數據結構,mydata是MYSQL對象  
        mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"gbk");//連接選項:添加GBK字符集支持  
          
        //連接函數  
        if(mysql_real_connect(&mydata,"localhost","root","1234","demo", 3306, 0, 0) != NULL)  
            cout<<"database connection OK!"<<endl;  
    }  

    這裏注意一下,mysql_real_connect函數中的幾個參數(&mydata,"localhost","root","1234","demo", 3306, 0, 0),一般就需要改2,3,4,5幾個參數即可,分別爲數據庫位置,用戶名,密碼,待連接的數據庫名稱

  • 如果代碼中出現#include "stdafx.h"報錯:ERROR,無法打開源文件...,參見這裏
    主要是由於這個頭文件屬於預編譯頭文件,如果在創建項目時候沒有告訴VS相關信息,當然不認識這是什麼東西了。

  • #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL
    參見這裏

  • c++ fatal error C1083: 無法打開預編譯頭文件:“.\Debug\router.pch”
    參見這裏,這個問題也屬於預編譯頭文件問題


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