>  기사  >  데이터 베이스  >  MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三)--处理返回数_MySQL

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

WBOY
WBOY원래의
2016-06-01 13:18:01998검색

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 *
    
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.