文件首頁
MySQL 9.0 C API 開發人員指南
下載本手冊
PDF (美式信紙) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.21 mysql_fetch_lengths()

unsigned long *
mysql_fetch_lengths(MYSQL_RES *result)

說明

傳回結果集中目前列的欄長度。如果您計劃複製欄位值,此長度資訊也可用於最佳化,因為您可以避免呼叫 strlen()。此外,如果結果集包含二進位資料,您必須使用此函式來判斷資料的大小,因為 strlen() 對於任何包含空字元的欄位,都會傳回不正確的結果。

空欄和包含 NULL 值的欄長度為零。若要瞭解如何區分這兩種情況,請參閱 mysql_fetch_row() 的說明。

傳回值

一個無符號長整數的陣列,表示每個欄的大小 (不包含任何終止空位元組)。如果發生錯誤,則傳回 NULL

錯誤

mysql_fetch_lengths() 僅適用於結果集的目前列。如果您在呼叫 mysql_fetch_row() 之前或在擷取結果中的所有列之後呼叫它,則會傳回 NULL

範例

MYSQL_ROW row;
unsigned long *lengths;
unsigned int num_fields;
unsigned int i;

row = mysql_fetch_row(result);
if (row)
{
    num_fields = mysql_num_fields(result);
    lengths = mysql_fetch_lengths(result);
    for(i = 0; i < num_fields; i++)
    {
         printf("Column %u is %lu bytes in length.\n",
                i, lengths[i]);
    }
}