Bagaimanakah cara saya mendapatkan beberapa set hasil daripada prosedur tersimpan menggunakan MySQLi dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-01 08:58:02
asal
707 orang telah melayarinya

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

Mengambil Berbilang Set Hasil daripada Prosedur Tersimpan dengan MySQLi

Prosedur tersimpan anda, "berbilang", menjana berbilang set hasil. Untuk memajukan dan mendapatkan data daripada set hasil seterusnya, ikuti langkah ini menggunakan sambungan MySQLi:

Gaya Prosedur PHP:

<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>
Salin selepas log masuk

Objek PHP- Gaya Berorientasikan:

<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>
Salin selepas log masuk

Nota Tambahan:

  • Selepas mara ke set hasil seterusnya, anda mesti mengambil dan memprosesnya sebelum meneruskan kepada yang berikutnya.
  • Jika prosedur tersimpan anda menghasilkan int yang dikembalikan sebagai rentetan kosong, semak jenis lajur dalam jadual pangkalan data anda.
  • Pertimbangkan untuk menggunakan gaya berorientasikan objek dengan MySQLi untuk lebih bersih dan lebih banyak struktur kod terkapsul.

Atas ialah kandungan terperinci Bagaimanakah cara saya mendapatkan beberapa set hasil daripada prosedur tersimpan menggunakan MySQLi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!