bool
mysql_stmt_bind_result(MYSQL_STMT *stmt,
MYSQL_BIND *bind)
mysql_stmt_bind_result()
用於將結果集中的輸出欄位與資料緩衝區和長度緩衝區關聯(即繫結)。當呼叫 mysql_stmt_fetch()
來提取資料時,MySQL 用戶端/伺服器協定會將繫結欄位的資料放入指定的緩衝區中。
在呼叫 mysql_stmt_fetch()
之前,所有欄位都必須繫結至緩衝區。bind
是 MYSQL_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
元素的成員,以及應如何設定它們以接收輸出值。
-
不支援轉換。可能是
buffer_type
值無效,或不是支援的類型之一。 -
記憶體不足。
-
發生不明錯誤。
請參閱第 6.4.12 節,「mysql_stmt_fetch()」中的範例。