Search the MySQL manual:

9.1.7.7 mysql_bind_result()

my_bool mysql_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)

Description

mysql_bind_result() is used to associate (bind) columns in the result set to data buffers and length buffers. When mysql_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified buffers.

Note that all columns must be bound to buffers prior to calling mysql_fetch(). bind is the address of an array of MYSQL_BIND structures. The client library expects the array to contain an element for each column of the result set. Otherwise, mysql_fetch() simply ignores the data fetch. Also, the buffers should be large enough to hold the data values, because the protocol doesn't 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_fetch() is called. Suppose an application binds the columns in a result set and calls mysql_fetch(). The client/server protocol returns data in the bound buffers. Then suppose the application binds the columns to a different set of buffers. The protocol does not place data into the newly bound buffers until the next call to mysql_fetch() occurs.

To bind a column, an application calls mysql_bind_result() and passes the type, address, and the address of the length buffer. The members of each MYSQL_BIND element that should be set are described in section 9.1.5 C API Prepared Statement Datatypes.

Return Values

Zero if the bind was successful. Non-zero if an error occurred.

Errors

CR_NO_PREPARE_STMT
No prepared statement exists.
CR_UNSUPPORTED_PARAM_TYPE
The conversion is not supported. Possibly the buffer_type value is illegal or is not one of the supported types.
CR_OUT_OF_MEMORY
Out of memory.
CR_UNKNOWN_ERROR
An unknown error occurred.

Example

For the usage of mysql_bind_result(), refer to the Example from section 9.1.7.13 mysql_fetch().

User Comments

Add your own comment.