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()」中的範例。