linux-mysql-store-result

#include <stdlib.h>
#include <stdio.h>
#include <mysql.h>

int main(int argc, char *argv[]){

	MYSQL my_connection;
	MYSQL_RES * res_ptr;
	MYSQL_ROW sqlrow;
	int ret = -1;
	const char* host = "localhost";
	const char* user = "root";
	const char* password = "!QAZ2wsx";
	const char* dbname = "rick";
	mysql_init(&my_connection);

	MYSQL*  conn_ptr= mysql_real_connect(&my_connection ,host, user, password,dbname,0,NULL,0);

	if(conn_ptr){

		ret = mysql_query(&my_connection, "select * from children");

		if(ret){
			fprintf(stderr, "select error %d : %s \n", mysql_errno(&my_connection), mysql_error(&my_connection));
		}else{
			res_ptr = mysql_store_result(&my_connection);
			if(res_ptr){
#if 1
				printf("Retrive rows: %lu \n", (unsigned long)mysql_num_rows(res_ptr));

				while((sqlrow=mysql_fetch_row(res_ptr))){
					printf("childno: %s, fname: %s, age:%s \n", sqlrow[0], sqlrow[1], sqlrow[2]);
				}
#endif

#if 0
                int total_fileds =  mysql_num_fields(res_ptr);
                printf("Retrive rows: %lu , total_fileds : %d \n", (unsigned long)mysql_num_rows(res_ptr), total_fileds);
                
                while((sqlrow=mysql_fetch_row(res_ptr))){
                    for(int j= 0 ; j < total_fileds;++j){
                        printf("%s ",sqlrow[j]);
                    }
                    printf("\n");
                }
#endif

 if(mysql_errno(&my_connection)){
					fprintf(stderr, "Retrive error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
				}
				mysql_free_result(res_ptr);
			}
		}

		mysql_close(&my_connection);

	}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 0;
}

运行:

xx@ubuntu:~/workspace/mysql-test$ g++ -o test-select simple_mysql_select.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
xx@ubuntu:~/workspace/mysql-test$ ./test-select
Retrive rows: 8
childno: 1, fname: tom, age:7
childno: 2, fname: lucy, age:4
childno: 3, fname: Kinder, age:10
childno: 4, fname: Jacy, age:9
childno: 5, fname: John, age:8



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值