int mysql_stmt_fetch_column(MYSQL_STMT *stmt,
MYSQL_BIND *bind, unsigned int column, unsigned long
offset)
Description
Fetch one column from the current result set row.
bind
provides the buffer where data should be
placed. It should be set up the same way as for
mysql_stmt_bind_result()
.
column
indicates which column to fetch. The
first column is numbered 0. offset
is the
offset within the data value at which to begin retrieving data.
This can be used for fetching the data value in pieces. The
beginning of the value is offset 0.
This function was added in MySQL 4.1.2.
Return Values
Zero if the value was fetched successfully. Nonzero if an error occurred.
Errors
Invalid column number.
The end of the result set has already been reached.
User Comments
This is a bit missleading: "bind provides the buffer where data should be placed. It should be set up the same way as for mysql_stmt_bind_result()."
The 'bind' argument expects a MYSQL_BIND structure setup for the target field, not the array of MYSQL_BIND structures used in 'mysql_stmt_bind_result()'.
Please note: even if you only use this function to fetch your fields, you still have to bind the result parameters using mysql_bind_result(). If you don't, mysql_stmt_fetch_column() will SEGFAULT at this line (libmysql/libmysql.c:4069 in MySQL 5.0.67):
*my_bind->length= *param->length;
...because "param" will be an invalid pointer.
Add your own comment.