MariaDB Connector/C Data Structures
Reference for the public data structures in MariaDB Connector/C, including MYSQL, MYSQL_RES, MYSQL_STMT, MYSQL_FIELD, MYSQL_BIND, and MYSQL_TIME with all member definitions.
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 long
length
The length (width) of the column definition
unsigned long
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). The length is ignored for numeric and fixed size data types, as the buffer_type value determines the size of the data.
my_bool *
is_null
Pointer which indicates if column is NULL (not used for parameters)
my_bool *
error
Pointer which indicates if an error occurred
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
unsigned long
length_value
Used if address of length_value is assigned to MYSQL_BIND::length
my_bool
error_value
Used if address of error_value is assigned to MYSQL_BIND::error
my_bool
is_null_value
Used if address of is_null_value is assigned to MYSQL_BIND::is_null
my_bool
is_unsigned
Set if integer type is unsigned
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
Time Type
MARIADB_X509_INFO
The MARIADB_X509_INFO structure contains information about the peer certificate. This information is only available for TLS/SSL connections.
int
version
Peer certificate version
char *
issuer
Issuer of peer certificate
char *
subject
Subject of peer certificate
char[129]
fingerprint
Fingerprint (SHA256, 384 or 512)
struct tm
not_before
Start date of peer certificate
struct tm
not_after
Expiration date of peer certificate
MARIADB_X509_INFO was added in MariaDB Connector/C 3.4.1
This page is: Copyright © 2026 MariaDB. All rights reserved.
Last updated
Was this helpful?

