溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vc 連接mysql數(shù)據(jù)庫的方法

發(fā)布時(shí)間:2020-10-27 10:11:03 來源:億速云 閱讀:196 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章給大家分享的是有關(guān)vc 連接mysql數(shù)據(jù)庫的方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

vc連接mysql數(shù)據(jù)庫的方法:首先打開VC6;然后在中間列表框中添加本地安裝MySQL的include目錄路徑;接著選中“Library files”并添加MySQL的Lib目錄路徑;最后進(jìn)行編程測試即可。

一、MySQL的安裝

Mysql的安裝去官網(wǎng)下載就可以。。。最新的是5.7版本。。

二、VC6.0的設(shè)置

(1)打開VC6.中選0 工具欄Tools菜單下的Options選項(xiàng),在Directories的標(biāo)簽頁中右邊的“Show directories for:”下拉列表中“Includefiles”,然后在中間列表框中添加你本地安裝MySQL的include目錄路徑。如圖:

  vc 連接mysql數(shù)據(jù)庫的方法

(2)在上面說到的“Show directories for:”下拉列表中選中“Library files”,然后添加你本地安裝MySQL的Lib目錄路徑。如圖:

vc 連接mysql數(shù)據(jù)庫的方法

**這里要說明一下:細(xì)心的人會發(fā)現(xiàn)我的這個(gè)目錄和上一個(gè)圖中的不一樣,這是因?yàn)檫@個(gè)錯(cuò)誤:libmysql.lib : fatal error LNK1113: invalid machine 無效的服務(wù)器

這是因?yàn)関c開發(fā)的是32位的程序,而mysql數(shù)據(jù)庫是64位導(dǎo)致的,你用32位的程序去操作64位的數(shù)據(jù)庫肯定會出錯(cuò),我在下一篇博文中將詳細(xì)說明怎么解決。

(3)在“Project settings->Link:Object/library modules”里面添加“l(fā)ibmysql.lib”。
       vc 連接mysql數(shù)據(jù)庫的方法

(5)建議將“l(fā)ibmySQL.lib、libmySQL.dll”拷到你所建的工程的目錄下。

這兩個(gè)文件在D:\Mysql\lib目錄下。

三、編程實(shí)現(xiàn)

1. 一個(gè)簡單的小程序,看看是否能連接成功。。。

#include <stdio.h>
#include <windows.h>
#include <mysql.h> 

int main()
{

       MYSQL mysql;
       mysql_init(&mysql); //初始化mysql結(jié)構(gòu)

       if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
              printf("\n連接數(shù)據(jù)庫時(shí)發(fā)生錯(cuò)誤!\n");
       else
              printf("\n連接數(shù)據(jù)庫成功!\n");

       mysql_close(&mysql); //釋放數(shù)據(jù)庫
  
       return 0;
}

mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0)//myuser是我的用戶名,“123456”是密碼,“student_db”是數(shù)據(jù)庫,3306是端口號

 2.實(shí)現(xiàn)查詢小程序

// test.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <windows.h>
#include "StdAfx.h"

#include <winsock.h>  
#include <iostream>  
#include <string>  
#include <mysql.h>  
using namespace std;  
//不需要單步調(diào)試的就注釋掉  
//#define STEPBYSTEP  
  
void pause(){  
  
    #ifdef STEPBYSTEP  
        system("pause");  
    #endif  
}  
void writeToFile(const char *s)  
{  
  
     FILE *fp=fopen("info.txt","rw");  
     fprintf(fp,s);  
     fclose(fp);  
  
}  
 /* int main()

{

       MYSQL mysql;
       mysql_init(&mysql); //初始化mysql結(jié)構(gòu)

       if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
              printf("\n連接數(shù)據(jù)庫時(shí)發(fā)生錯(cuò)誤!\n");
       else
              printf("\n連接數(shù)據(jù)庫成功!\n");

       mysql_close(&mysql); //釋放數(shù)據(jù)庫
  
       return 0;
}*/
int main(int argc, char* argv[]){  
  
    cout<<"start...."<<endl;  
    pause();  
    MYSQL mysql;  
    if(0==mysql_library_init(0,NULL,NULL))  
    {  
        cout<<"mysql_library_init succeed"<<endl;  
  
    }else{  
        cout<<"mysql_library_init failed"<<endl;  
        return -1;  
    }  
    pause();  
    if(NULL!=mysql_init(&mysql))  
    {  
  
        cout<<"mysql_init succeed"<<endl;  
    }else{  
        cout<<"mysql_init failed"<<endl;  
        return -1;  
    }  
    pause();  
    if(0==mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gb2312"))  
    {  
  
        cout<<"mysql_option succeed"<<endl;  
    }else{  
        cout<<"mysql_option failed"<<endl;  
        return -1;  
    }  
    pause();  
  
    if(NULL!=mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))  
    {  
  
        cout<<"mysql_real_connect succeed"<<endl;  
    }else{  
        cout<<"mysql_real_connect failed"<<endl;  
        return -1;  
    }  
    pause();  
    string sql;  
    
    sql="select * from sgroup";  
    MYSQL_RES *result=NULL;  
    if(0==mysql_query(&mysql,sql.c_str()))  
    {  
  
            cout<<"mysql_query select succeed"<<endl;  
            result=mysql_store_result(&mysql);  
            int rowcount=mysql_num_rows(result);  
            cout<<"row count:"<<rowcount<<endl;  
            unsigned int fieldcount=mysql_num_fields(result);  
            MYSQL_FIELD *field=NULL;  
            for(unsigned int i=0;i<fieldcount;i++)  
            {  
  
                field=mysql_fetch_field_direct(result,i);  
                cout<<field->name<<"\t\t";  
            }  
            cout<<endl;  
            MYSQL_ROW row=NULL;  
            row=mysql_fetch_row(result);  
            while(NULL!=row)  
            {  
  
                for(int i=0;i<fieldcount;i++){  
  
                    cout<<row[i]<<"\t\t";  
  
                }  
                cout<<endl;  
                row=mysql_fetch_row(result);  
  
            }  
    }else{  
  
            cout<<"mysql_query select data failed"<<endl;  
            mysql_close(&mysql);  
            return -1;  
    }  
    pause();  
    /*sql="drop table user_info";  
    if(0==mysql_query(&mysql,sql.c_str()))  
    {  
  
            cout<<"mysql_query drop table succeed"<<endl;  
    }else{  
            cout<<"mysql_query drop table failed"<<endl;  
            mysql_close(&mysql);  
            return -1;  
  
    }  */
    mysql_free_result(result);  
    mysql_close(&mysql);  
    mysql_server_end();  
  
  
    system("pause");  
    return 0;  
}

  運(yùn)行結(jié)果:

vc 連接mysql數(shù)據(jù)庫的方法

感謝各位的閱讀!關(guān)于vc 連接mysql數(shù)據(jù)庫的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI