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 發生錯誤

錯誤