视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vc 怎样连接mysql数据库
2020-11-08 22:13:23 责编:小采
文档


推荐:《mysql视频教程》

一、MySQL的安装

Mysql的安装去官网下载就可以。。最新的是5.7版本。

二、VC6.0的设置

(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。如图:

(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。如图:

**这里要说明一下:细心的人会发现我的这个目录和上一个图中的不一样,这是因为这个错误:libmysql.lib : fatal error LNK1113: invalid machine 无效的服务器

这是因为vc开发的是32位的程序,而mysql数据库是位导致的,你用32位的程序去操作位的数据库肯定会出错,我在下一篇博文中将详细说明怎么解决。

(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。

(5)建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。

这两个文件在D:\Mysql\lib目录下。

三、编程实现

1. 一个简单的小程序,看看是否能连接成功。。

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

int main()
{

 MYSQL mysql;
 mysql_init(&mysql); //初始化mysql结构

 if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
 printf("\n连接数据库时发生错误!\n");
 else
 printf("\n连接数据库成功!\n");

 mysql_close(&mysql); //释放数据库
 
 return 0;
}

mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0)//myuser是我的用户名,“123456”是密码,“student_db”是数据库,3306是端口号

2.实现查询小程序

// 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; 
//不需要单步调试的就注释掉 
//#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结构

 if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
 printf("\n连接数据库时发生错误!\n");
 else
 printf("\n连接数据库成功!\n");

 mysql_close(&mysql); //释放数据库
 
 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; 
}

  运行结果:

至此连接成功。哈哈。

下载本文
显示全文
专题