windows下VC++6.0编写c++程序连接mysql示例

    windows下通过c++编码连接mysql数据库,需要做一些设置,因为我们需要连接mysql并执行相关操作,需要使用mysql提供的api,这api在mysql.h头文件中定义了,因此我们需要在项目中引入mysql.h文件,另外在执行调用的时候,libmysql.lib和libmysql.dll提供了函数调用,我们还需要引入libmysql.lib和libmysql.dll。

    这里需要强调的一点是,虽然我们需要连接mysql,但是本机是无需安装mysql的,原因有二:1、我们的程序连接的mysql服务是可以指定ip和端口的,也就是说这个ip和端口可以随便指定,可以是本地,也可以是远程的。2、即使本机安装了mysql,现在的主机都是64位的,因此一般选择64位的mysql安装,但是这里我们的程序编译只能是32位平台,而且我们引入的libmysql.lib还必须是32位环境的。

    上面说了本机不一定需要安装myql,但是一定要下载或者找到一个32位的mysql,解压到某一个目录,然后将lib目录下的libmysql.lib和libmysql.dll两个文件拷贝到项目路径下。

    1、我们需要设置项目的include files和library files。具体操作如下图所示:在VC++6.0环境下,选择Tools->Options->Directories,在Include files选项下,选择增加一个目录,指向mysql安装目录的include目录,如下所示:

    windows下VC++6.0编写c++程序连接mysql示例_第1张图片

    该目录下有mysql.h就是我们在项目中需要通过#include引入的头文件。不做这一个设置,编译会报错。

    2、接着,我们选择Library files,然后将mysql目录下的lib加入到下面的Directories中,如下所示:

    windows下VC++6.0编写c++程序连接mysql示例_第2张图片

    3、在Project->Settings->Link->Object/library modules:在这里增加libmysql.lib。如下所示:

    windows下VC++6.0编写c++程序连接mysql示例_第3张图片

    我这里是一个工作空间下有多个项目,所以第一步选择有些奇怪,mysql是这个示例的项目名称。

    值得一提的是,这一步不是必须的,因为在程序中,我们可以很方便的通过#pragma comment(lib,"libmysql.lib")增加这个配置。我这里就没有这么设置,而是在程序中通过#pragma comment(lib,"libmysql.lib")的方式设置的,这两种方式有一种即可,两种都设置了,也没有问题。

    4、我们一定需要一个32位的mysql安装包文件,可以选择清华的源下载,国内下载非常快速,不用特意去mysql官网下载,地址如下:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/,我们选择一个合适的win32的zip包即可。解压,然后将lib目录下的libmysql.lib和libmysql.dll文件加入项目目录下。如下所示:

    windows下VC++6.0编写c++程序连接mysql示例_第4张图片

    说明一下:我们下载的mysql版本不一定要和mysql服务器的版本一致,只要相差不是太大即可,比如我的mysql服务器是mysql-5.7.11-win64,而我用来在项目中依赖的mysql安装包是mysql-5.7.27-win32版本。 

    接下来,我们就可以准备编码了,这里给出一个简单的代码,代码可以连接本机mysql数据库,然后查询test数据库下的xx_scores表的数据:

#include 
#include 
using namespace std;
#pragma comment(lib,"libmysql.lib")
MYSQL conn;
MYSQL_FIELD *fd;
MYSQL_ROW row;
MYSQL_RES *result;
char column[32][32];

bool ConnectDatabase();
bool QueryData();
void FreeDatabase();
int main(){
	ConnectDatabase();
	QueryData();
	FreeDatabase();
	return 0;
}

bool ConnectDatabase(){
	mysql_init(&conn);
	if(!(mysql_real_connect(&conn,"localhost","root","root","test",3306,NULL,0))){
		cout<<"mysql connected fail."<name);
			}
			j = mysql_num_fields(result);
			for(i=0;i

     运行程序,控制台打印信息如下所示:

    windows下VC++6.0编写c++程序连接mysql示例_第5张图片

    这样,我们的示例就完成了,其中一定要注意libmysql.lib以及libmysql.dll文件的版本,必须是32位的。如果是64位的版本,编译不会报错,但是构建的时候会报错:invalid machine type。错误信息如下所示:

--------------------Configuration: mysql - Win32 Debug--------------------
Linking...
E:\MYSQL-5.7.11-WINX64\LIB\libmysql.lib : fatal error LNK1113: invalid machine type
Error executing link.exe.

mysql.exe - 1 error(s), 0 warning(s)

     最重要的一点:windows下通过c++程序连接mysql一定要注意引入libmysql.lib与libmysql.dll的版本一定要是32位平台的,本机可以安装mysql,也可以不用安装,但是一定要有一个win32的mysql安装包。

你可能感兴趣的:(c++)