MariaDB Connector/C Data Structures

This page describes the public data structures used by MariaDB Connector/C.

MYSQL

The MYSQL structure represents one database connection and is used by most of MariaDB Connector/C's API functions. The MYSQL structure needs to be allocated and initialized by the mysql_init() API function. It will be released by the mysql_close() function.

The MYSQL structure should be considered as opaque; copying or changing values of its members might produce unexpected results, errors or program crashes.

MYSQL_RES

The MYSQL_RES structure represents a result set which contains data and metadata information. It will be returned by the mysql_use_result(), mysql_store_result() and mysql_stmt_result_metadata() API functions and needs to be released by mysql_free_result().

The MYSQL_RES structure should be considered as opaque; copying or changing values of its members might produce unexpected results, errors or program crashes.

MYSQL_ROW

MYSQL_ROW represents an array of character pointers, pointing to the columns of the actual data row. Data will be received by the mysql_fetch_row() function. The size of the array is the number of columns for the current row.

After freeing the result set with mysql_free_result() MYSQL_ROW becomes invalid.

MYSQL_STMT

The MYSQL_STMT structure represents a prepared statement handle and is used by MariaDB Connector/C's prepared statement API functions. The MYSQL_STMT structure needs to be allocated and initialized by the mysql_stmt_init() function and needs to be released by the mysql_stmt_close() function.

The MYSQL_STMT structure should be considered as opaque; copying or changing values of its members might produce unexpected results, errors or program crashes.

MYSQL_FIELD

The MYSQL_FIELD structure describes the metadata of a column. It can be obtained by the mysql_fetch_field() function.

It has the following members:

char *

name

The name of the column

unsigned int

name_length

The length of column name

char *

org_name

The original name of the column

unsigned int

org_name_length

The length of original column name

char *

table

The name of the table

unsigned int

table_length

The length of table name

char *

org_table

The original name of the table

unsigned int

org_table_length

The length of original table name

char *

db

The name of the database (schema)

unsigned int

db_length

The length of database name

char *

catalog

The catalog name (always 'def')

unsigned int

catalog_length

The length of catalog name

char *

def

default value

unsigned int

def_length

The length of default value

unsigned int

length

The length (width) of the column definition

unsigned int

max_length

The maximum length of the column value

unsigned int

flags

Flags

unsigned int

decimals

Number of decimals

enum enum_field_types

type

Field type

MYSQL_BIND

The MYSQL_BIND structure is used to provide parameters for prepared statements or to receive output column value from prepared statements.

unsigned long *

length

Pointer for the length of the buffer (not used for parameters)

my_bool *

is_nulll

Pointer which indicates if column is NULL (not used for parameters)

my_bool *

error

Pointer which indicates if an error occured

void *

buffer

Data buffer which contains or receives data

char *

u.indicator

Array of indicator variables for bulk operation parameter

unsigned long

buffer_length

Length of buffer

enum enum_field_types

buffer_type

unsigned long

length_value

Used if length pointer is NULL

my_bool

error_value

Used if error pointer is NULL

my_bool

is_null_value

Used if is_null pointer is NULL

my_bool

is_unsigned

Set if integer type is unsigned

my_bool

is_null_value

Used if value is NULL

MYSQL_TIME

The MYSQL_TIME structure is used for date and time values in prepared statements. It has the following members:

unsigned int

year

Year

unsigned int

month

Month

unsigned int

day

Day

unsigned int

hour

Hour

unsigned int

minute

Minute

unsigned int

second

Second

unsigned long

second_part

Fractional seconds (max. 6 digits)

my_bool

neg

Negative value

enum enum_mysql_timestamp_type

time_type

Type

Last updated

Was this helpful?