Wie rufe ich mit MySQLi in PHP mehrere Ergebnismengen aus einer gespeicherten Prozedur ab?

Barbara Streisand
Freigeben: 2024-11-01 08:58:02
Original
707 Leute haben es durchsucht

How do I retrieve multiple result sets from a stored procedure using MySQLi in PHP?

Mehrere Ergebnismengen aus einer gespeicherten Prozedur mit MySQLi abrufen

Ihre gespeicherte Prozedur „multiples“ generiert mehrere Ergebnismengen. Um zu nachfolgenden Ergebnismengen zu gelangen und Daten daraus abzurufen, befolgen Sie diese Schritte mit der MySQLi-Erweiterung:

PHP-Prozedurstil:

<code class="php">// Prepare the statement
$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');

// Bind parameters
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);

// Execute the statement
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row1 = $result1->fetch_assoc()) {
  echo "Result 1: " . $row1['id'] . "\n";
}

// Advance to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);

// Fetch and print the second result set
while ($row2 = $result2->fetch_assoc()) {
  echo "Result 2: " . $row2['id'] . "\n";
}

// Close the statement
mysqli_stmt_close($stmt);</code>
Nach dem Login kopieren

PHP-Objekt- Orientierter Stil:

<code class="php">// Create a prepared statement object
$stmt = $db->prepare('CALL multiples(?, ?)');

// Bind parameters
$stmt->bind_param('ii', $param1, $param2);

// Execute the statement
$stmt->execute();

// Fetch the first result set
$result1 = $stmt->get_result();
while ($row1 = $result1->fetch_assoc()) {
  echo "Result 1: " . $row1['id'] . "\n";
}

// Advance to the second result set
$stmt->next_result();

// Store and print results from the second result set
$result2 = $stmt->get_result();
while ($row2 = $result2->fetch_assoc()) {
  echo "Result 2: " . $row2['id'] . "\n";
}

// Close the statement
$stmt->close();</code>
Nach dem Login kopieren

Zusätzliche Hinweise:

  • Nachdem Sie mit dem nächsten Ergebnissatz fortgefahren sind, müssen Sie ihn abrufen und verarbeiten, bevor Sie fortfahren können zum nächsten.
  • Wenn Ihre gespeicherte Prozedur Ints generiert, die als leere Zeichenfolgen zurückgegeben werden, überprüfen Sie die Spaltentypen in Ihrer Datenbanktabelle.
  • Erwägen Sie die Verwendung des objektorientierten Stils mit MySQLi für eine sauberere Ausführung und eine stärker gekapselte Codestruktur.

Das obige ist der detaillierte Inhalt vonWie rufe ich mit MySQLi in PHP mehrere Ergebnismengen aus einer gespeicherten Prozedur ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!