bool
mysql_stmt_bind_result(MYSQL_STMT *stmt,
MYSQL_BIND *bind)
mysql_stmt_bind_result()
is
used to associate (that is, bind) output columns in the result
set to data buffers and length buffers. When
mysql_stmt_fetch()
is called
to fetch data, the MySQL client/server protocol places the
data for the bound columns into the specified buffers.
All columns must be bound to buffers prior to calling
mysql_stmt_fetch()
.
bind
is the address of an array of
MYSQL_BIND
structures. The client library
expects the array to contain one element for each column of
the result set. If you do not bind columns to
MYSQL_BIND
structures,
mysql_stmt_fetch()
simply
ignores the data fetch. The buffers should be large enough to
hold the data values, because the protocol does not return
data values in chunks.
A column can be bound or rebound at any time, even after a
result set has been partially retrieved. The new binding takes
effect the next time
mysql_stmt_fetch()
is called.
Suppose that an application binds the columns in a result set
and calls mysql_stmt_fetch()
.
The client/server protocol returns data in the bound buffers.
Then suppose that the application binds the columns to a
different set of buffers. The protocol places data into the
newly bound buffers when the next call to
mysql_stmt_fetch()
occurs.
To bind a column, an application calls
mysql_stmt_bind_result()
and
passes the type, address, and length of the output buffer into
which the value should be stored.
Section 6.2, “C API Prepared Statement Data Structures”,
describes the members of each MYSQL_BIND
element and how they should be set to receive output values.
-
The conversion is not supported. Possibly the
buffer_type
value is invalid or is not one of the supported types. -
Out of memory.
-
An unknown error occurred.
See the Example in Section 6.4.11, “mysql_stmt_fetch()”.