C++连接MYSQL教程

MYSQL是使用较为广泛的开源数据库,官方提供的API是C/C++程序员连接至MYSQL编程的一种很方便的方法。下面简单介绍该方法的具体实现步骤。首先推荐一本MYSQL中文手册[下载],里面有详细的API函数介绍,本教程只演示C++连接到MYSQL的简单过程,具体的开发大家还要常去查阅手册。好了,言归正传,我们开始吧!

环境VS2015

1:新建空项目

2:配置项目属性

在项目上右键,选择属性,选择VC++目录标签页,将MYSQL的include文件夹和lib文件夹路径分别添加到包含目录和库目录。如作者本机上include路径为 C:\Program Files\MySQL\MySQL Server 5.7\include,lib路径为C:\Program Files\MySQL\MySQL Server 5.7\lib。具体操作为,点击包含目录右侧下拉菜单,选择编辑,选择新行,将上面的include路径添加进去


类似的,将lib路径添加到库目录中去。

3 添加libmysql.lib至附加依赖项中:(链接器--->输入--->附加依赖项)


4 作者使用的mysql是64位的,因此需要将项目的解决方案平台由win32改成x64,视平台而定(调试--->平台)



5 将C:\Program Files\MySQL\MySQL Server 5.7\lib(视具体目录而定)下的libmysql.dll文件拷贝到项目生成目录中去,否则运行提示缺少动态库!


好了,配置过程总算完成了,还算简单吧!

下面我们尝试读取一个数据库表格

首先建议一个名为mydb的数据库,新建一个名为student的表,表的内容如下:



我们就尝试用C++读取表内容并输出至屏幕,直接上代码

#include <Windows.h>
#include <mysql.h>
#include <string>
#include <iostream>

using namespace std;

int main()
{

	const char user[] = "root";
	const char pswd[] = "930808";
	const char host[] = "localhost";
	const char dbname[] = "mydb";
	unsigned int port = 3306;
	MYSQL mysql1;
	MYSQL_RES *result;
	MYSQL_ROW sql_row;
	MYSQL_FIELD *fields;
	int res;
	mysql_init(&mysql1);
	if (mysql_real_connect(&mysql1, host, user, pswd, dbname, port, NULL, 0))
	{
		mysql_query(&mysql1, "SET NAMES GBK"); //设置编码格式
		res = mysql_query(&mysql1, "select * from student");//查询
		if (!res)
		{
			result = mysql_store_result(&mysql1);
			if (result)
			{
				unsigned int num_column, num_row;	//记录表格大小
				num_column = mysql_num_fields(result);
				num_row = mysql_num_fields(result);
				fields = mysql_fetch_field(result);
				cout << endl;
				for (int i = 0; i < num_column; ++i)
				{
					cout << fields[i].name << "\t";
				}
				cout << endl<<endl;
				while (sql_row = mysql_fetch_row(result))//按行输出数据
				{
					for (int i = 0; i < num_row; ++i)
					{
						cout << sql_row[i] << "\t";
					}
					cout << endl;
					
				}
			}
		}
		else
		{
			cout << "query sql failed!" << endl;
		}
	}
	else
	{
		cout << "connect failed!" << endl;
	}
	if (result != NULL)
		mysql_free_result(result);
	mysql_close(&mysql1);
	system("pause");
	return 0;

}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值