vc 连接mysql数据库的方法

53次阅读
没有评论

共计 3297 个字符,预计需要花费 9 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 vc 连接 mysql 数据库的方法的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考。一起跟随丸趣 TV 小编过来看看吧。

vc 连接 mysql 数据库的方法:首先打开 VC6;然后在中间列表框中添加本地安装 MySQL 的 include 目录路径;接着选中“Library files”并添加 MySQL 的 Lib 目录路径;最后进行编程测试即可。

一、MySQL 的安装

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

二、VC6.0 的设置

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

  vc 连接 mysql 数据库的方法

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

vc 连接 mysql 数据库的方法

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

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

(3)在“Project settings- Link:Object/library modules”里面添加“libmysql.lib”。
       vc 连接 mysql 数据库的方法

(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(); 

return 0; }

运行结果:

vc 连接 mysql 数据库的方法

感谢各位的阅读!关于 vc 连接 mysql 数据库的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计3297字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)