C++连接MySQL

C++连接MySQL

前几天得到了CSDN和天涯的账号文件,一开始我使用Java希望将数据导入MySQL,但那速度实在是受不了,这次我想用C++试试,不过C++连接MySQL可真是麻烦,不像Java写个工具类,随时可以用。

 

我的环境是Visual Studio 2010,MySQL版本为5.1,MySQL在安装时必须选择Complete安装。

在VS中新建一个工程,为了连接MySQL,我们需要做一些前期工作,进入工程的属性,选择配置属性VC++目录,在右侧的包含目录里加入MySQL的include文件夹地址,我的为C:\Program Files\MySQL\MySQL Server 5.1\include;在库目录加入lib目录,我的为C:\Program Files\MySQL\MySQL Server 5.1\lib\opt。

C++连接MySQL

现在就可以编写C++代码了,这里给个Demo:

#include <stdio.h>
#include <iostream>
#include “winsock.h”
#include “mysql.h” 

#pragma comment(lib, “libmysql.lib”)

using namespace std;

int main( )
{
cout<<“begin to connect the mysql\n“;
MYSQL mysql;
MYSQL_RES *result;
MYSQL_FIELD *fd;
MYSQL_ROW sql_row;
char column[32][32];
//初始化MySQL C API库
mysql_library_init(0,NULL,NULL);
//初始化mydata的数据结构
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,“utf8″);
//连接函数
if(mysql_real_connect(&mysql,
“localhost”,“root”,“root”,“csdn”,3306,0,0) != NULL)
{
cout<<“database connection OK!\n“;
//查询
int res=mysql_query(&mysql,“select * from csdn”);
if(!res)
{
//保存查询到的数据到result
result=mysql_store_result(&mysql);
if(result)
{
int i,j;
cout<<“number of result: “<<(unsignedlong)mysql_num_rows(result)<<endl;
//获取列名
for(i=0;fd=mysql_fetch_field(result);i++)
{
strcpy(column[i],fd->name);
}
j=mysql_num_fields(result);
for(i=0;i<j;i++)
{
cout<<column[i]<<“\t“;
}
printf(“\n“);
//获取具体的数据
while(sql_row=mysql_fetch_row(result))
{
for(i=0;i<j;i++)
{
cout<<sql_row[i]<<“\n“;
}
cout<<endl;
}
}
}
else
{
cout<<“query sql failed!”<<endl;
}
}
else
{
cout<<“connect failed”;
}
if(result!=NULL)
mysql_free_result(result);//释放结果资源
mysql_close(&mysql);//断开连接
return 0;
}

这段代码用于C++连接数据库以及查询并输出,其他就要自己去参考MySQL的C API库了,http://dev.mysql.com/doc/refman/5.1/zh/apis.html#c 。

C++连接MySQL

FROMhttp://yilee.info/cpp-connect-mysql.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注