6.4.6 mysql_stmt_bind_result()

bool
mysql_stmt_bind_result(MYSQL_STMT *stmt,
                       MYSQL_BIND *bind)

描述

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

在调用 mysql_stmt_fetch() 之前,必须将所有列绑定到缓冲区。 bindMYSQL_BIND 结构数组的地址。客户端库期望数组包含结果集每一列的一个元素。如果未将列绑定到 MYSQL_BIND 结构,则 mysql_stmt_fetch() 仅忽略数据获取。缓冲区应足够大以容纳数据值,因为协议不会以块的形式返回数据值。

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

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

返回值

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

错误

示例

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