MYSQL API以及基本操作介绍以及,MYSQL_FIELD介绍

本文介绍了MySQL API中的mysql_fetch_fields()函数和MYSQL_FIELD结构,详细阐述了如何获取结果集的列信息和数据,包括mysql_store_result()、mysql_use_result()、mysql_fetch_row()等函数的使用方法,以及MYSQL_FIELD结构的字段含义和作用。
摘要由CSDN通过智能技术生成

一.mysql 常用基本结数据构介绍

typedef struct st_mysql_res {

  my_ulonglong row_count;                               // 结果集的行数

  unsigned int field_count, current_field;            // 结果集的列数,当前列

  MYSQL_FIELD *fields;                                    // 结果集的列信息

  MYSQL_DATA *data;                                      // 结果集的数据

  MYSQL_ROWS *data_cursor;                        // 结果集的光标

  MEM_ROOT field_alloc;                                   // 内存结构

  MYSQL_ROW row;                                         // 非缓冲的时候用到

  MYSQL_ROW current_row;                           //mysql_store_result时会用到。当前行

  unsigned long *lengths;                                //每列的长度

  MYSQL *handle;                                           // mysql_use_result会用。

  my_bool eof;                                                 //是否为行尾

} MYSQL_RES;

typedef char ** MYSQL_ROW; /* 返回的每一行的值,全部用字符串来表示*/
typedef struct st_mysql_rows {
  struct st_mysql_rows *next; /* list of rows */
  MYSQL_ROW data;
MYSQL_ROWS;        //mysql的数据的链表节点。可见mysql的结果集是链表结构

typedef struct st_mysql_data {
  my_ulonglong rows;
  unsigned int fields;
  MYSQL_ROWS *data;
  MEM_ROOT alloc;
MYSQL_DATA; // 数据集的结构

typedef struct st_mysql_field {
  char *name; /* Name of column */
  char *table;                                            /* Table of column if column was a field */
  char *def;                                               /* Default value (set by mysql_list_fields) */
  enum enum_field_types type;                /* Type of field. Se mysql_com.h for types */
  unsigned int length;                               /* Width of column */
  unsigned int max_length;                       /* Max width of selected set */
  unsigned int flags;                                  /* Div flags */
  unsigned int decimals;                            /* Number of decimals in field */
MYSQL_FIELD;  //列信息的结构

typedef struct st_used_mem { /* struct for once_alloc */

  struct st_used_mem *next; /* Next block in use */

  unsigned int left; /* memory left in block  */

  unsigned int size; /* Size of block */

USED_MEM; //内存结构

typedef struct st_mem_root {

  USED_MEM *free;

  USED_MEM *used;

  USED_MEM *pre_alloc;

  unsigned int min_malloc;

  unsigned int block_size;

  void (*error_handler)(void);

MEM_ROOT;  //内存结构

二。常用API介绍

  1. int mysql_query(MYSQL* mysql, const char* query) //查询函数,成功返回零,否则返回错误类型非零值。  
  2.   
  3. const char* mysql_error(MYSQL* mysql) //返回最近一次调用失败的错误消息(返回的是字符串消息)  
  4.   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值