Verarbeitung mehrerer Ergebnismengen aus gespeicherten Prozeduren in MySQL mit PHP/mysqli
Das Abrufen mehrerer Ergebnismengen aus gespeicherten Prozeduren in PHP/mysqli kann sein wird durch den Einsatz der Funktion mysqli_stmt_next_result() erreicht. Das folgende Beispiel zeigt, wie diese Funktion verwendet wird, um zum zweiten Ergebnissatz zu gelangen:
<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)'); mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2); mysqli_stmt_execute($stmt); // Fetch and process the first result set $result1 = mysqli_stmt_get_result($stmt); while ($row1 = mysqli_fetch_assoc($result1)) { // Process row1 } // Advance to the second result set mysqli_stmt_next_result($stmt); if (mysqli_stmt_error($stmt)) { die('Failed to advance to the second result set: ' . mysqli_stmt_error($stmt)); } // Fetch and process the second result set $result2 = mysqli_stmt_get_result($stmt); while ($row2 = mysqli_fetch_assoc($result2)) { // Process row2 }</code>
PDO-Lösung
Bei Verwendung von PDO würde der Code wie folgt aussehen:
<code class="php">$stmt = $db->prepare('CALL multiples(:param1, :param2)'); $stmt->execute([':param1' => $param1, ':param2' => $param2]); // Fetch and process the first result set while ($row1 = $stmt->fetch()) { // Process row1 } // Advance to the second result set $stmt->nextRowset(); // Fetch and process the second result set while ($row2 = $stmt->fetch()) { // Process row2 }</code>
Hinweis:
Es ist wichtig zu bedenken, dass nicht alle Datenbankserver mehrere Ergebnismengen aus gespeicherten Prozeduren unterstützen. Informationen zur Kompatibilität finden Sie immer in der Dokumentation Ihres Datenbankservers.
Das obige ist der detaillierte Inhalt vonWie rufe ich mit PHP/mysqli und PDO mehrere Ergebnismengen aus gespeicherten Prozeduren in MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!