Linux下C++/C连接MySQL数据库(三)

[cpp] view plain

//将MYSQL_ROW的值作为一个存储了一行数据的数组…

unsigned int mysql_field_count(MYSQL * connection);//将MYSQL_ROW的值作为一个存储了一行数据的数组…

示例:

[cpp] view plain

//一次取一个值的情况,另一种情况与其类似,修改处会标出#include <iostream>#include <fstream>#include <cstdlib>#include <mysql/mysql.h>using namespace std;void mysql_err_function(MYSQL * connection);void mysql_display(MYSQL * mysql,MYSQL_ROW sqlrow);int main(){MYSQL * connection;connection = mysql_init(NULL);if (mysql_real_connect(connection,"localhost","root","123456","test",0,NULL,0)){cout << "Connection to MySQL Server is Succeed…" << endl;string query = "select * from tmp15";//getline(cin,query);int res = mysql_query(connection,query.c_str());if (res){mysql_err_function(connection);}else{MYSQL_RES * my_res = mysql_use_result(connection);//将mysql_use_result改为mysql_store_result即可得到另一种情况的结果(其实是相同的…)if (my_res){MYSQL_ROW sqlrow;while ((sqlrow = mysql_fetch_row(my_res))){mysql_display(connection,sqlrow);}mysql_free_result(my_res);}else{mysql_err_function(connection);}}mysql_close(connection);cout << "Connection to MySQL Server is Closed!" << endl;}else{mysql_err_function(connection);}}void mysql_err_function(MYSQL * connection){if (mysql_errno(connection)){cout << "Error " << mysql_errno(connection) << " : "<< mysql_error(connection) << endl;exit(-1);}}void mysql_display(MYSQL * mysql,MYSQL_ROW sqlrow){for (unsigned int i = 0; i < mysql_field_count(mysql); ++i){printf("%s ",sqlrow[i]);//cout << sqlrow[i] << ' ';//不知到为什么将printf换成cout之后,打印值就会出错…思考ing…}cout << endl;}二、获取一个字段的信息

[cpp] view plain

1、MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result);2、MYSQL_FIELD定义:typedef struct st_mysql_field{char *name;/* Name of column */char *table;/* Table of column if column was a field */char *org_table;/* Org table name if table was an alias */char *db;/* Database for table */char *def;/* Default value (set by mysql_list_fields) */unsigned long length;/* Width of column */unsigned long max_length;/* Max width of selected set */unsigned int flags;/* Div flags */unsigned int decimals;/* Number of decimals in field */enum enum_field_types type;/* Type of field. Se mysql_com.h for types */} MYSQL_FIELD;3、IS_NUM宏,,若字段类型是数字形式的,则返回真。if (IS_NUM(mysql_field_ptr -> type)){cout << "Number" << endl;}4、MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES * result,MYSQL_FIELD_OFFSET offset);//函数将字段光标设置到给定的偏移量offset,下一次调用mysql_fetch_field将检索与该偏移量关联的列的字段定义。如果钥定位行的开始,则要传递一个值为0的offset值。

示例:

[cpp] view plain

联系朋友别欠费,天空辽阔任你飞,再多困难别后退! “

Linux下C++/C连接MySQL数据库(三)

相关文章:

你感兴趣的文章:

标签云: