mysql_stmt_fetch是函式名,mysql_stmt_fetch()返回結果集中的下一行。僅能當結果集存在時調用它,也就是說,調用了能創建結果集的mysql_stmt_execute()之後,或當mysql_stmt_execute()對整個結果集即行緩衝處理後調用了mysql_stmt_store_result()。
基本介紹
- 外文名:mysql_stmt_fetch
- 頭檔案:#include<mysql.h>
- 函式原型:int mysql_stmt_fetch
- 說明:僅能當結果集存在時調用它
說明,返回值,錯誤,
說明
使用mysql_stmt_bind_result()綁定的緩衝,mysql_stmt_fetch()返回行數據。對於當前列集合中的所有列,它將返回緩衝內的數據,並將長度返回到長度指針。調用mysql_stmt_fetch()之前,應用程式必須綁定所有列。
如果獲取的數據值是NULL值,對應MYSQL_BIND結構的*is_null值將包含TRUE (1)。否則,將根據應用程式指定的緩衝類型,在*buffer和*length內返回數據及其長度。每個數值類型和臨時類型都有固定的長度,請參見下面的表格。字元串類型的長度取決於由data_length指明的實際數據值的長度。
類型 | 長度 |
MYSQL_TYPE_TINY | 1 |
MYSQL_TYPE_SHORT | 2 |
MYSQL_TYPE_LONG | 4 |
MYSQL_TYPE_LONGLONG | 8 |
MYSQL_TYPE_FLOAT | 4 |
MYSQL_TYPE_DOUBLE | 8 |
MYSQL_TYPE_TIME | sizeof(MYSQL_TIME) |
MYSQL_TYPE_DATE | sizeof(MYSQL_TIME) |
MYSQL_TYPE_DATETIME | sizeof(MYSQL_TIME) |
MYSQL_TYPE_STRING | data length |
MYSQL_TYPE_BLOB | data_length |
返回值
返回值 | 描述 |
0 | 成功,數據被提取到應用程式數據緩衝區。 |
1 | 出現錯誤。調用mysql_stmt_error(),可獲取錯誤訊息。 |
MYSQL_NO_DATA | 不存在行/數據。 |
MYSQL_DATA_TRUNCATED | 出現數據截短。 |
不返回MYSQL_DATA_TRUNCATED,除非用mysql_options()啟用了截短通報功能。返回該值時,為了確定截短的參數是哪個,可檢查MYSQL_BIND參數結構的錯誤成員。
錯誤
CR_COMMANDS_OUT_OF_SYNC
以不恰當的順序執行了命令。
· CR_OUT_OF_MEMORY
· CR_SERVER_GONE_ERROR
MySQL伺服器不可用。
· CR_SERVER_LOST
在查詢過程中,與伺服器的連線丟失。
· CR_UNKNOWN_ERROR
出現未知錯誤。
· CR_UNSUPPORTED_PARAM_TYPE
緩衝類型為MYSQL_TYPE_DATE、MYSQL_TYPE_TIME、MYSQL_TYPE_DATETIME、或MYSQL_TYPE_TIMESTAMP,但數據類型不是DATE、TIME、DATETIME、或TIMESTAMP。