【C/C++】C++连接mysql数据库

C++连接mysql可以有两种方法实现,第一种方法是利用ADO连接,第二种方法是利用mysql自己的API函数连接。不管用哪种方法,首先需要安装mysql数据库,最好安装一个Navicat for mysql,方便操作数据库。

在这里只介绍第二种方法:利用mysql自己的API函数连接。


1. 用VS2005连接mysql数据库,首先需要配置环境变量,具体的操作步骤如下:

(1)添加包含(include)文件目录:项目-->属性-->配置属性-->C/C++-->常规-->附加包含目录,在该目录下添加:"C:\Program Files\MySQL\MySQL Server 5.5\include"该路径请根据本机的安装路径修改。

(2)添加库(Libs)文件目录:项目-->属性-->配置属性-->链接器-->常规-->附加库目录,在该目录下添加:"C:\Program Files\MySQL\MySQL Server 5.5\lib"该路径请根据本机的安装路径修改。

(3)在数据库操作的源程序中加入语句:#pragma comment(lib,"libmySQL.lib")


2. 建立数据库表格如下图所示



3. 下面是一个简单的C++程序,实现的功能是连接数据库并向数据库中添加信息

#include <iostream>
#include "winsock.h"
#include "mysql.h"
#include <string>
using namespace std;

#pragma comment(lib,"libmySQL.lib")

void openDB();
void closeDB();
void commitDB();
void insertDB(string name,string sex,int number);
void startRun();
void endRun();

MYSQL *mysql;

char dbuser[30]="root";           //数据库用户名
char dbpasswd[30]="123";		  //数据库密码
char dbip[30]="localhost";		  //服务器
char dbname[50]="testdb";		  //数据库名
char tablename[50]="table2";	  //数据表名

void main()
{
	string name="jack";
	string sex="male";
	int number=2013;
	
	startRun();
	insertDB(name,sex,number);
	commitDB();
	endRun();
}

void openDB()
{		
	mysql=mysql_init(NULL);
	if(!mysql_real_connect(mysql,dbip,dbuser,dbpasswd,dbname,3306,NULL,0))
	{
		cout<<"数据库连接错误!"<<endl;
	}
	else
	{
		cout<<"数据库连接成功!"<<endl;
	}
}

void closeDB()
{
	if(mysql) mysql_close(mysql);
	mysql=NULL;
}

void insertDB(string name,string sex,int number)
{
	char num[30];
	sprintf(num,"%d",number);
	string tablename_s=tablename;
	string pQuery = "INSERT INTO `"+tablename_s+"`(NAME,SEX,NUM) VALUES('"+name+"','"+sex+"','"+num+"');";
	mysql_query(mysql, pQuery.c_str());
}

void commitDB()
{
	if(mysql_commit(mysql))
		cout<<"COMMIT出现错误!"<<endl;
}

void startRun()
{
	if(mysql)
		closeDB();
	openDB();
}

void endRun()
{
	if(mysql)
	{
		commitDB();
		closeDB();
	}
}
		


4. 运行程序之后,打开数据库验证一下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值