Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich mit PHP/mysqli und PDO mehrere Ergebnismengen aus gespeicherten Prozeduren in MySQL ab?

Wie rufe ich mit PHP/mysqli und PDO mehrere Ergebnismengen aus gespeicherten Prozeduren in MySQL ab?

DDD
DDDOriginal
2024-10-30 19:30:02734Durchsuche

How to Retrieve Multiple Result Sets from Stored Procedures in MySQL with PHP/mysqli and PDO?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn