VC++6.0连接MYSQL数据库

转自:http://blog.chinaunix.net/uid-20767210-id-1849630.html

//下面的代码是一个实现C++连接MYSQL数据库的很好的例子
//
这里用了建表,插入,检索,删表等常用功能
//
我用VC++6.0生成,已经成功连接了。
//
VC++6.0中要想把做一下两步准备工作才可以。
//(1)Tools->Options->Directories->Include files
中添加C:\Program Files\MySQL\MySQL Server 6.0\include
//(2)Tools->Options->Directories->Library files
中添加
C:\Program Files\MySQL\MySQL Server 6.0\lib
//
其实就是将头文件和库文件包含进来
//
我觉得这个例子写的很好,再结合自己的试验,特地介绍给大家!

#include <winsock.h>
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
#pragma comment (lib,"ws2_32.lib")
#pragma comment(lib,"libmysql.lib")

//不需要单步调试的就注释掉
//#define STEPBYSTEP

void pause(){

	#ifdef STEPBYSTEP
		system("pause");
	#endif
}
void writeToFile(const char *s)
{

	 FILE *fp=fopen("info.txt","rw");
	 fprintf(fp,s);
	 fclose(fp);

}

int main(){

	cout<<"start...."<<endl;
	pause();
	MYSQL mysql;
	if(0==mysql_library_init(0,NULL,NULL))
	{
		cout<<"mysql_library_init succeed"<<endl;

	}else{
		cout<<"mysql_library_init failed"<<endl;
		return -1;
	}
	pause();
	if(NULL!=mysql_init(&mysql))
	{

		cout<<"mysql_init succeed"<<endl;
	}else{
		cout<<"mysql_init failed"<<endl;
		return -1;
	}
	pause();
	if(0==mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gb2312"))
	{

		cout<<"mysql_option succeed"<<endl;
	}else{
		cout<<"mysql_option failed"<<endl;
		return -1;
	}
	pause();

	if(NULL!=mysql_real_connect(&mysql,"localhost","root","123456","user",3307,NULL,0))
	{

		cout<<"mysql_real_connect succeed"<<endl;
	}else{
		cout<<"mysql_real_connect failed"<<endl;
		return -1;
	}
	pause();
	string sql;
	sql="create table if not exists user_info(";
	sql+="user_id int not null auto_increment primary key,";
	sql+="user_name varchar(100) default NULL,user_second_sum int not null default 0)";


	cout<<sql<<endl;
	//writeToFile(sql.c_str());
	if(0==mysql_query(&mysql,sql.c_str()))
	{

			cout<<"mysql_query create table succeed"<<endl;
	}else{
			cout<<"mysql_query create table failed"<<endl;
			mysql_close(&mysql);
			return -1;
	}
	pause();
	sql ="insert into user_info(user_name) values('公司名称'),('一级部门'),('二级部门'),('开发小组'),('姓名');";
	if(0==mysql_query(&mysql,sql.c_str()))
	{

			cout<<"mysql_query insert succeed"<<endl;

	}else{
			cout<<"mysql_query insert failed "<<endl;
			mysql_close(&mysql);
			return -1;

	}
	pause();
	sql="select user_id,user_name,user_second_sum from user_info";
	MYSQL_RES *result=NULL;
	if(0==mysql_query(&mysql,sql.c_str()))
	{

			cout<<"mysql_query select succeed"<<endl;
			result=mysql_store_result(&mysql);
			int rowcount=mysql_num_rows(result);
			cout<<"row count:"<<rowcount<<endl;
			unsigned int fieldcount=mysql_num_fields(result);
			MYSQL_FIELD *field=NULL;
			for(unsigned int i=0;i<fieldcount;i++)
			{

				field=mysql_fetch_field_direct(result,i);
				cout<<field->name<<"\t\t";
			}
			cout<<endl;
			MYSQL_ROW row=NULL;
			row=mysql_fetch_row(result);
			while(NULL!=row)
			{

				for(int i=0;i<fieldcount;i++){

					cout<<row[i]<<"\t\t";

				}
				cout<<endl;
				row=mysql_fetch_row(result);

			}
	}else{

			cout<<"mysql_query select data failed"<<endl;
			mysql_close(&mysql);
			return -1;
	}
	pause();
	sql="drop table user_info";
	if(0==mysql_query(&mysql,sql.c_str()))
	{

			cout<<"mysql_query drop table succeed"<<endl;
	}else{
			cout<<"mysql_query drop table failed"<<endl;
			mysql_close(&mysql);
			return -1;

	}
	mysql_free_result(result);
	mysql_close(&mysql);
	mysql_server_end();


	system("pause");
	return 0;
}




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值