mysql_query执行selece_执行SQL语句---SELECT

1、通常从MySQL数据库中检索数据有4个步骤:

(1)发出查询: 用mysql_query发出查询。

(2)检索数据: 用mysql_store_result/mysql_use_result

(3)处理数据:用mysql_fetch_row, mysql_fetch_field

(4)整理所需要的数据:用mysql_free_result允许MySQL进行必要的整理工作。

2、例子:结构化的数据库查询输出

/** MysqlQuery2.c

*

* Created on: Sep 8, 2013

* Author: root*/#include#include#includeMYSQL my_connection;

MYSQL_RES*res_ptr;

MYSQL_ROW sqlrow;voiddisplay_header();void display_row(MYSQL *ptr);intmain(){intres;int first_row = 1;

mysql_init(&my_connection);if(mysql_real_connect(&my_connection, "localhost", "root", "ROOT123456", "icmp", 0, NULL, 0)){

printf("Connection success.\n");

res= mysql_query(&my_connection, "select childno, fname, age from children where age > 5");if(res){

printf("Select error:%s \n", mysql_error(&my_connection));return -2;

}else{

res_ptr= mysql_use_result(&my_connection);if(res_ptr){

display_header();while((sqlrow =mysql_fetch_row(res_ptr))){if(first_row){

display_header();

first_row= 0;

}

display_row(&my_connection);

}if(mysql_errno(&my_connection)){

fprintf(stderr,"Retrieve error:%s\n", mysql_error(&my_connection));return -3;

}

}

mysql_free_result(res_ptr);

}

mysql_close(&my_connection);

printf("Connection closed.\n");

}else{

fprintf(stderr,"Connection failed.\n");if(mysql_errno(&my_connection)){

fprintf(stderr,"Connection error %d %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));return -1;

}

}return 0;

}voiddisplay_header(){

MYSQL_FIELD*field_ptr;

printf("Column details:\n");while((field_ptr = mysql_fetch_field(res_ptr)) !=NULL){

printf("\tName: %s\n", field_ptr->name);

printf("\tType:");if(IS_NUM(field_ptr->type)){

printf("Numeric field\n");

}else{switch(field_ptr->type){caseFIELD_TYPE_VAR_STRING:

printf("VARCHAR\n");break;caseFIELD_TYPE_LONG:

printf("LONG\n");break;default:

printf("Type is %d, check in mysql_com.h\n", field_ptr->type);

}

}

printf("\tMax width %d\n", field_ptr->length);if(field_ptr->flags &AUTO_INCREMENT_FLAG){

printf("\t Auto increments\n");

}

printf("\n");

}

}void display_row(MYSQL *ptr){

unsignedintfield_count;

field_count= 0;while(field_count

printf("%s", sqlrow[field_count]);

field_count++;

}

printf("\n");

}

运行结果:

Connection success.

Column details:

Name: childno

Type:Numeric field

Max width 11

Auto increments

Name: fname

Type:VARCHAR

Max width 30

Name: age

Type:Numeric field

Max width 11

Column details:

1 wangle 28

2 xuyehui 29

Connection closed.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值