27.7.10.5 mysql_stmt_bind_result()

my_bool mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)

Description

mysql_stmt_bind_result()用于将结果集中的输出列关联(即绑定)到数据缓冲区和长度缓冲区。当调用mysql_stmt_fetch()来获取数据时,MySQLClient 端/服务器协议将绑定列的数据放入指定的缓冲区中。

在调用mysql_stmt_fetch()之前,所有列都必须绑定到缓冲区。 bindMYSQL_BIND结构数组的地址。Client 端库希望数组对结果集的每一列包含一个元素。如果您不将列绑定到MYSQL_BIND结构,则mysql_stmt_fetch()只会忽略数据提取。缓冲区应该足够大以容纳数据值,因为该协议不会分块返回数据值。

即使已部分检索结果集,列也可以随时绑定或反弹。新的绑定在下次调用mysql_stmt_fetch()时生效。假设应用程序将结果集中的列绑定并调用mysql_stmt_fetch()。Client 端/服务器协议返回绑定缓冲区中的数据。然后,假设应用程序将列绑定到一组不同的缓冲区。当下一次调用mysql_stmt_fetch()时,该协议将数据放入新绑定的缓冲区中。

要绑定列,应用程序调用mysql_stmt_bind_result()并传递应将值存储在其中的输出缓冲区的类型,地址和长度。 第 27.7.8 节“ C API 准备的语句数据结构”描述每个MYSQL_BIND元素的成员以及应如何设置它们以接收输出值。

Return Values

零成功。如果发生错误,则为非零值。

Errors

不支持该转换。 buffer_type值可能无效或不是受支持的类型之一。

记不清。

出现未知错误。

Example

请参阅第 27.7.10.11 节“ mysql_stmt_fetch()”中的示例。