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


5.4.22 mysql_fetch_row()

MYSQL_ROW
mysql_fetch_row(MYSQL_RES *result)

描述

注意

mysql_fetch_row() 是一個同步函數。其非同步對應函數為 mysql_fetch_row_nonblocking(),供需要與伺服器進行非同步通訊的應用程式使用。請參閱 第 7 章,C API 非同步介面

mysql_fetch_row() 擷取結果集的下一列

列中的值數量由 mysql_num_fields(result) 給定。如果 row 保存了呼叫 mysql_fetch_row() 的傳回值,則可以透過 row[0]row[mysql_num_fields(result)-1] 存取值的指標。列中的 NULL 值由 NULL 指標表示。

可以透過呼叫 mysql_fetch_lengths() 取得列中欄位值的長度。空欄位和包含 NULL 的欄位長度均為 0;您可以透過檢查欄位值的指標來區分這些值。如果指標為 NULL,則欄位為 NULL;否則,欄位為空。

傳回值

下一列的 MYSQL_ROW 結構,或 NULLNULL 傳回值的含義取決於在 mysql_fetch_row() 之前呼叫的函數

錯誤

在呼叫 mysql_fetch_row() 之間,錯誤不會重設

範例

MYSQL_ROW row;
unsigned int num_fields;
unsigned int i;

num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
   unsigned long *lengths;
   lengths = mysql_fetch_lengths(result);
   for(i = 0; i < num_fields; i++)
   {
       printf("[%.*s] ", (int) lengths[i],
              row[i] ? row[i] : "NULL");
   }
   printf("\n");
}