Bagaimana untuk Mendapatkan Pembolehubah Output daripada MySQL Stored Procedures dalam PHP dengan PDO?

Linda Hamilton
Lepaskan: 2024-11-06 09:57:02
asal
305 orang telah melayarinya

How to Retrieve Output Variables from MySQL Stored Procedures in PHP with PDO?

Mendapatkan semula Pembolehubah Output Prosedur Tersimpan dalam PHP dengan PDO

Objektif: Ambil nilai LAST_INSERT_ID() daripada prosedur tersimpan MySQL dan tetapkan kepada pembolehubah PHP.

Pernyataan Masalah

Walaupun kod PHP yang disediakan menggunakan pengikatan PDO, ia gagal menangkap pembolehubah output LAST_INSERT_ID() daripada prosedur tersimpan SimpleProcedure.

Penjelasan

Mengambil pembolehubah output daripada prosedur tersimpan MySQL dalam PHP PDO melibatkan proses dua peringkat:

  1. Melaksanakan prosedur tersimpan dan menetapkan pembolehubah output kepada pembolehubah pengguna MySQL.
  2. Menyiasat pembolehubah pengguna MySQL untuk mendapatkan semula nilainya ke dalam pembolehubah PHP.

Penyelesaian: Proses Dua Peringkat

Peringkat 1: Melaksanakan Prosedur

$stmt = $db->prepare("CALL simpleProcedure(:name, @returnid)");
$stmt->bindValue(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':returnid', $returnid, PDO::PARAM_INT, 11, PDO::PARAM_INOUT);  // Note the PDO::PARAM_INOUT
$stmt->execute();
Salin selepas log masuk

Dengan mengikat pemegang tempat :returnid sebagai INOUT, PDO bukan sahaja akan menghantar pembolehubah PHP kepada prosedur tetapi juga mengemas kininya dengan nilai pembolehubah output.

Peringkat 2: Mendapatkan semula Pembolehubah Output

$sql = "SELECT @returnid AS output_id";
$result = $db->query($sql)->fetch(PDO::FETCH_ASSOC);

$lastInsertId = $result['output_id'];
Salin selepas log masuk

Soal pembolehubah pengguna MySQL @returnid untuk menetapkan nilainya kepada pembolehubah PHP $lastInsertId.

Nota

Mengikat pembolehubah PHP ke INOUT dan parameter OUT untuk prosedur MySQL boleh menghadapi ralat masa jalan. Adalah disyorkan untuk hanya mengikat pembolehubah kepada parameter IN.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Pembolehubah Output daripada MySQL Stored Procedures dalam PHP dengan PDO?. 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