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