嚴格標準:mysqli_next_result() mysqli_multi_query 錯誤
在提供的 PHP 程式碼中,嘗試使用 my_sql執行多個查詢在單一資料庫呼叫中觸發嚴格的標準錯誤:
mysqli_next_result(): There is no next result set. Please, call mysqli_more_results()/mysqli::more_results() to check whether to call this function/method
要解決此錯誤,提供以下解決方案:
do {} while (mysqli_more_results($db) && mysqli_next_result($db));
此修改可確保在使用mysqli_next_result( ) 之前檢查mysqli_more_results()。此外,由於提供的程式碼中沒有傳回結果集,因此檢查 mysqli_affected_rows() 而不是條件退出可能是更好的方法。
使用 mysqli_multi_query() 處理帶或不帶結果集的查詢的更全面的解決方案是提供:
if (mysqli_multi_query($mysqli, implode(';', $queries))) { do { if ($result = mysqli_store_result($mysqli)) { // Process result set } } while (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli)); } if ($mysqli_error = mysqli_error($mysqli)) { // Handle error }
或者,使用 while循環的程式碼片段的「重新發明」版本是呈現:
while ((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query = mysqli_multi_query($mysqli, implode(';', $queries)))) { // Process query } if ($mysqli_error = mysqli_error($mysqli)) { // Handle error }
這些片段提供了處理多個查詢和結果集的強大機制,使它們適用於更廣泛的場景。
以上是如何正確處理 PHP 的 `mysqli_multi_query()` 中的 `mysqli_next_result()` 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!