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