6.4.18 mysql_stmt_next_result()

int
mysql_stmt_next_result(MYSQL_STMT *mysql)

說明

當您使用預處理的 CALL 語句來執行可能傳回多個結果集的儲存程序時,會使用此函數。 使用一個迴圈呼叫 mysql_stmt_next_result() 來判斷是否有更多結果。 如果程序具有 OUTINOUT 參數,其值將會在任何其他結果集之後以單列結果集的形式傳回。 這些值將以它們在程序參數清單中宣告的順序顯示。

有關未處理條件對程序參數的影響資訊,請參閱 條件處理和 OUT 或 INOUT 參數

mysql_stmt_next_result() 會傳回一個狀態,指示是否存在更多結果。 如果 mysql_stmt_next_result() 傳回錯誤,則沒有更多結果。

在每次呼叫 mysql_stmt_next_result() 之前,如果目前結果產生了結果集(而不是僅僅是結果狀態),您必須呼叫 mysql_stmt_free_result() 來釋放該結果。

呼叫 mysql_stmt_next_result() 之後,連線的狀態如同您呼叫了 mysql_stmt_execute()。 這表示您可以呼叫 mysql_stmt_bind_result()mysql_stmt_affected_rows() 等等。

也可以透過呼叫 mysql_more_results() 來測試是否有更多結果。 但是,此函數不會變更連線狀態,因此如果它傳回 true,您仍然必須呼叫 mysql_stmt_next_result() 來推進到下一個結果。

如需顯示如何使用 mysql_stmt_next_result() 的範例,請參閱 第 3.6.5 節,「預處理 CALL 語句支援」

傳回值

傳回值 說明
0 成功,且有更多結果
-1 成功,且沒有更多結果
>0 發生錯誤

錯誤