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