Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ruft man mehrere Ergebnismengen aus einer gespeicherten Prozedur in PHP/MySQL ab?

Wie ruft man mehrere Ergebnismengen aus einer gespeicherten Prozedur in PHP/MySQL ab?

DDD
DDDOriginal
2024-11-01 18:45:02782Durchsuche

How do you retrieve multiple result sets from a stored procedure in PHP/mysqli?

Abrufen mehrerer Ergebnismengen mit gespeicherten Prozeduren in PHP/mysqli

In PHP/MySQLi erfordert die Ausführung einer gespeicherten Prozedur mit mehreren Ergebnismengen Vorsicht Handhabung. Um nach der Ausführung der gespeicherten Prozedur zum zweiten Ergebnissatz zu gelangen, müssen Sie:

  1. mysqli_stmt_execute verwenden: Die gespeicherte Prozedur mit mysqli_stmt_execute ausführen.
  2. Rufen Sie den ersten Ergebnissatz ab: Rufen Sie mysqli_stmt_get_result auf, um den ersten Ergebnissatz abzurufen, und lesen Sie seine Daten mit fetch_assoc, fetch_array oder fetch_row.
  3. Gehen Sie zum nächsten Ergebnissatz: Nach dem Lesen Rufen Sie im ersten Ergebnissatz mysqli_stmt_next_result auf, um zum nächsten Ergebnissatz zu gelangen.
  4. Zweiten Ergebnissatz abrufen: Rufen Sie mysqli_stmt_get_result erneut auf, um den zweiten Ergebnissatz abzurufen und seine Daten zu lesen.

Hier ist ein Beispielcode mit PHP/MySQLi:

<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row = $result1->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

// Move to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);
while ($row = $result2->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

mysqli_stmt_close($stmt);</code>

Dieser Code ruft erfolgreich die Daten aus beiden Ergebnismengen in der angegebenen gespeicherten Prozedur ab und druckt sie.

Das obige ist der detaillierte Inhalt vonWie ruft man mehrere Ergebnismengen aus einer gespeicherten Prozedur in PHP/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