文件首頁
MySQL 8.4 C API 開發人員指南
下載本手冊
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.18 mysql_fetch_field()

MYSQL_FIELD *
mysql_fetch_field(MYSQL_RES *result)

說明

MYSQL_FIELD 結構傳回結果集中單一資料行的定義。重複呼叫此函式以擷取結果集中所有資料行的資訊。當沒有其他欄位時,mysql_fetch_field() 會傳回 NULL

對於中繼資料選擇性的連線,當 resultset_metadata 系統變數設定為 NONE 時,此函式會傳回 NULL。若要檢查結果集是否具有中繼資料,請使用 mysql_result_metadata() 函式。有關管理結果集中繼資料傳輸的詳細資訊,請參閱第 3.6.7 節:「選用的結果集中繼資料」

每次執行新的 SELECT 查詢時,mysql_fetch_field() 會重設為傳回第一個欄位的相關資訊。mysql_fetch_field() 傳回的欄位也會受到對 mysql_field_seek() 的呼叫影響。

如果您已呼叫 mysql_real_query()mysql_query(),以對表格執行 SELECT,但尚未呼叫 mysql_store_result(),如果您呼叫 mysql_fetch_field() 以要求 BLOB 欄位的長度,MySQL 會傳回預設的 blob 長度 (8KB)。(選擇 8KB 大小的原因是因為 MySQL 不知道 BLOB 的最大長度。這應該在未來可設定。) 一旦您擷取結果集,field->max_length 會包含此特定查詢中此資料行最大值的長度。

傳回值

目前資料行的 MYSQL_FIELD 結構。如果沒有其他資料行或結果集沒有中繼資料,則為 NULL

錯誤

無。

範例

MYSQL_FIELD *field;

while((field = mysql_fetch_field(result)))
{
    printf("field name %s\n", field->name);
}