Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1886909
  • 博文数量: 496
  • 博客积分: 12043
  • 博客等级: 上将
  • 技术积分: 4778
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-27 14:26
文章分类

全部博文(496)

文章存档

2014年(8)

2013年(4)

2012年(181)

2011年(303)

2010年(3)

分类: C/C++

2011-12-22 15:44:52

很多人都想知道如何在VC++ 环境下C++连接MySQL,通过我长时间的实践总结得出:

  一、 环境配置

  第一步:工程->设置->连接->对象/库模块,添加libmysql.lib

  第二步:工具->选项->目录->路径,加入MySQL的include文件,lib/opt

  第三步:在工程所在文件中加入libmysql.dll文件(此文件在MySQL文件的子文件lib/debeg里)

  二、头文件的引入

  需要引入Winsock2.h和mysql.h(Winsock2.h的作用是:)

  三、数据库的连接

  1、mysql_library_init(0,NULL,NULL);//初始化数据库

  2、mysql_init(&mydata);//初始化数据结构

  3、mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"UTF8";//设置编码方式

  4、 mysql_real_connect(&mydata,"localhost","root","1234","hotel",3306,"NULL",0);// 数据库的连接(定义的数据库对象,本地/MySQL的服务端ip,用户名,密码,数据库名,固定,,,)

  四、数据库的使用

  数据库的使用主要是利用sql语句,这里挑选几个例子说明:

  stirng sqlstr ;

  1、查看表中的某行数据sqlstr="select * from tablename(表名) where (字段名)=\'"+string(字符串)+"\'";

  每次调用sql语句后,真正要被C++环境知道,就要执行以下语句:

  mysql_query(&mydata(数据库的对象),sqlstr.c_str()(这里需要一个));

  2、向表中添加一行数据第一种方法:sprintf(sqlstr, "INSERT INTO room VALUES('%s','%s','%s',%d,'%s')", num,type,capacity,price,state);

  第二种方法:sqlstr ="INSERT INTO room VALUES(\'"+num+"\',\'"+type+"\',\'"+capacity+"\',\'"+price+"\',\'"+state+"\');";

  3、获得表中特定行的某个数据:

  sqlstr="select * from info(表名) where customername(字段名)=\'"+name(字符串)+"\'; ";

  mysql_query(&mydata,sqlstr.c_str());

  result=mysql_store_result(&mydata);(MYSQL_RES *result=NULL

  row=mysql_fetch_row(result);(MYSQL_ROW row=NULL

  intime=row[2];[把表中获得的数据row【2】(表中第三个数据)复制给intime]

  4、表头和各行的输出:

  表头
  1.       MYSQL_RES *result=NULL;

  2.   result=mysql_store_result(&mydata);//

  3.   int rowcount=mysql_num_rows(result);//统计行数

  4.   cout<<"row count: "<

  5.   unsigned int fieldcount=mysql_num_fields(result);//统计字段数

  6.   MYSQL_FIELD *field=NULL;

  7.   for(unsigned int i=0;i

  8.   { field=mysql_fetch_field_direct(result,i);

  9.   cout<"\t\t"; p="" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">

  10.   } cout<
复制代码
  各行的输出:
  
  1.       MYSQL_ROW row=NULL;

  2.   row=mysql_fetch_row(result);

  3.   while(NULL!=row)

  4.   { for(i=0; i

  5.   { cout<

  6.   } cout<

  7.   row=mysql_fetch_row(result);

  8.   }
复制代码
转载自:http://blog.sina.com.cn/s/blog_9709fe240100yb4n.html
阅读(1462) | 评论(0) | 转发(0) |
0

上一篇:setitimer

下一篇:ACE中的设计模式应用场景

给主人留下些什么吧!~~