Strenge Standards: mysqli_next_result() Fehler mit mysqli_multi_query
Problem:
Verwendung von mysqli_multi_query( ) löst ein „Streng „Standards“-Fehler im Zusammenhang mit mysqli_next_result().
Lösung:
Um dieses Problem zu beheben, verwenden Sie den folgenden Code:
do{} while(mysqli_more_results($db) && mysqli_next_result($db));
Erklärung:
Der Fehler „Strikte Standards“ tritt auf, weil mysqli_more_results() muss aufgerufen werden, um zu prüfen, ob mysqli_next_result() verwendet werden soll. Das bereitgestellte Code-Snippet stellt sicher, dass mysqli_next_result() nur aufgerufen wird, wenn eine andere Ergebnismenge vorhanden ist.
Überlegungen:
Verbesserungen:
Für einen robusteren Ansatz sollten Sie den folgenden Codeausschnitt in Betracht ziehen:
if(mysqli_multi_query($db,$querystring)){ do{ $cumulative_rows+=mysqli_affected_rows($db); } while(mysqli_more_results($db) && mysqli_next_result($db)); } if($error_mess=mysqli_error($db)){echo "Error: $error_mess";} echo "Cumulative Affected Rows: $cumulative_rows";
Dieser Codeausschnitt:
Zusätzliche Hinweise:
Für Benutzer, die mit mysqli_multi_query() nicht vertraut sind, gibt es hier einen vielseitigen Codeausschnitt, der Abfragen verarbeitet mit oder ohne Ergebnismengen:
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)))){ echo "<br><br>",key($queries),": ",current($queries); // display array pointer key:value if($result=mysqli_store_result($mysqli)){ while($rows=mysqli_fetch_assoc($result)){ echo "<br>Col = {$rows["Col"]}"; } mysqli_free_result($result); } echo "<br>Rows = ",mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs }
Dieser Codeausschnitt:
Das obige ist der detaillierte Inhalt vonWie behebe ich „Strenge Standards: mysqli_next_result()-Fehler' mit mysqli_multi_query()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!