MariaDB Connector/C Data Structures
This page describes the public data structures used by MariaDB Connector/C.
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.
MYSQL structure should be considered as opaque; copying or changing values of its members might produce unexpected results, errors or program crashes.
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().
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 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 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.
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 structure describes the metadata of a column. It can be obtained by the mysql_fetch_field() function.
It has the following members:
|The name of the column|
|The length of column name|
|The original name of the column|
|The length of original column name|
|The name of the table|
|The length of table name|
|The original name of the table|
|The length of original table name|
|The name of the database (schema)|
|The length of database name|
|The catalog name (always |
|The length of catalog name|
|The length of default value|
|The length (width) of the column definition|
|The maximum length of the column value|
|Number of decimals|
MYSQL_BIND structure is used to provide parameters for prepared statements or to receive output column value from prepared statements.
|Pointer for the length of the buffer (not used for parameters)|
|Pointer which indicates if column is NULL (not used for parameters)|
|Pointer which indicates if an error occured|
|Data buffer which contains or receives data|
|Array of indicator variables for bulk operation parameter|
|Length of buffer|
|Used if length pointer is NULL|
|Used if error pointer is NULL|
|Used if is_null pointer is NULL|
|Set if integer type is unsigned|
|Used if value is NULL|
MYSQL_TIME structure is used for date and time values in prepared statements. It has the following members:
|Fractional seconds (max. 6 digits)|