請注意,對於有時會錯過閱讀此函數的重要手冊條目的人
如果您沒有使用 mysqli_stmt_store_result( ),並且在執行準備好的語句後立即呼叫此函數,則此函數通常會返回 0,因為它無法知道結果集中有多少列,因為結果集尚未儲存在記憶體中。
mysqli_stmt_store_result( ) 將結果集儲存在記憶體中,因此您可以在執行語句並儲存結果集後立即使用此函數。
如果您沒有儲存結果集,但仍然想使用此函數,則必須在使用此函數確定列數之前,使用 mysqli_stmt_fetch( ) 實際逐列迴圈處理結果集。
不過,如果您想在不儲存結果集的情況下,並且在迴圈處理之後確定列數,為什麼不在每次擷取列時在迴圈中保留一個內部計數器,並儲存函數呼叫呢?
簡而言之,如果您儲存結果集並想在迴圈處理之前確定列數,則此函數才真正有用,否則您可以像我建議的那樣重新建立其用途。