Chinaunix首页 | 论坛 | 博客
  • 博客访问: 495423
  • 博文数量: 51
  • 博客积分: 257
  • 博客等级: 二等列兵
  • 技术积分: 1489
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-02 18:30
个人简介

Unix/Linux, mysql, web,企业应用

文章分类

全部博文(51)

文章存档

2015年(1)

2014年(1)

2013年(48)

2012年(1)

我的朋友

分类: C/C++

2013-03-24 13:29:48

废话不多说,直接上代码:
  1. #include <stdio.h>
  2. #include <mysql/mysql.h>

  3. #define HOST "192.168.56.2"
  4. #define DB "webdevtest"
  5. #define USER "webdev"
  6. #define PWD "webdev"
  7. #define PORT 3306

  8. int main(){
  9.     MYSQL mysql;

  10.     //连接之前得先初始化
  11.     mysql_init(&mysql);

     //连接mysql数据库
  1.     if(!mysql_real_connect(&mysql,HOST,USER,PWD,DB,PORT,NULL,0)){
  2.         printf("连接数据库发生错误!\n");
  3.         return -1;
  4.     }
  5.     printf("连接数据库成功!\n");

  6.     //设置查询时的编码
  7.     mysql_query(&mysql,"set names utf8");

     //执行查询语句    
    char *sql="select * from test_sell_records limit 20";
  1.     if(mysql_query(&mysql,sql)!=0){
  2.         printf("执行mysql语句发生错误!\n");
  3.         mysql_close(&mysql);
  4.         return -1;
  5.     }
  6.     //获取结果集
  7.     MYSQL_RES *result=mysql_store_result(&mysql);
  8.     unsigned int i,num_fields;
  9.     //获取字段数
  10.     num_fields=mysql_num_fields(result);
  1.     //循环打印出各行
  2.     MYSQL_ROW row;
  3.     while((row=mysql_fetch_row(result))!=NULL){
  4.         for(i=0;i<num_fields;i++){
  5.             printf("%s\t",row[i]);
  6.         }
  7.         printf("\n");
  8.     }

  9.     //释放结果集
  10.     mysql_free_result(result);
  11.     //关闭连接
  12.     mysql_close(&mysql);
  13.     return 0;
  14. }
以上用到的函数为:
mysql_init()
mysql_real_connect()
mysql_query()
mysql_store_result()
mysql_num_fields()
mysql_fetch_now()
mysql_free_result()
mysql_close()

还有,编译的时候不要忘记了添加 -lmysqlclient 参数:
  1. gcc -o mysql_test mysql_test.c -lmysqlclient
在Linux下用C语言开发mysql客户端程序,需要安装mysql开发包,请参考:
http://blog.chinaunix.net/uid-20769015-id-3540362.html

mysql官方C API参考:http://dev.mysql.com/doc/refman/5.1/en/c-api-functions.html
阅读(6763) | 评论(0) | 转发(8) |
给主人留下些什么吧!~~