Heim  >  Artikel  >  Datenbank  >  MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三)--处理返回数_MySQL

MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三)--处理返回数_MySQL

WBOY
WBOYOriginal
2016-06-01 13:18:01996Durchsuche

Linux学习笔记

bitsCN.com

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

--处理返回数据

一、通过返回结果集中的字段数

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

示例:

//一次取一个值的情况,另一种情况与其类似,修改处会标出#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] << &#39; &#39;;	//不知到为什么将printf换成cout之后,打印值就会出错...思考ing...    }    cout << endl;}

二、获取一个字段的信息

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 *
    
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn