Bagaimana untuk Menyelesaikan 'argumen OUT atau INOUT ... bukan pembolehubah' Ralat Apabila Memanggil Prosedur Tersimpan dengan PDO?

Linda Hamilton
Lepaskan: 2024-11-07 00:38:03
asal
183 orang telah melayarinya

How to Resolve

Memanggil Prosedur Tersimpan dengan Parameter Keluar Menggunakan PDO

Soalan ini meneroka isu yang dihadapi semasa cuba memanggil prosedur tersimpan dengan parameter output menggunakan PDO dalam PHP. Mesej ralat "SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1414 OUT atau INOUT argumen 1 untuk mydb.proc_OUT rutin bukan pembolehubah atau pembolehubah pseudo BARU dalam SEBELUM pencetus" timbul.

Untuk menyelesaikan masalah ini isu, langkah berikut dicadangkan:

  1. Gunakan pertanyaan berasingan untuk mendapatkan semula parameter output: Daripada mengikat parameter output secara langsung, laksanakan pertanyaan lain untuk mendapatkan semula nilai parameter output selepas melaksanakan prosedur tersimpan. Contohnya:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
Salin selepas log masuk
  1. Sisipkan "SELECT @someOutParameter" dalam prosedur tersimpan: Sebagai alternatif, masukkan "SELECT @someOutParameter" ke dalam prosedur tersimpan dan kemudian ikat keputusan kepada parameter output menggunakan pernyataan yang disediakan. Contohnya:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt ->execute(array($someInParameter1, $someInParameter2));
Salin selepas log masuk

Dengan melaksanakan penyelesaian ini, ralat yang berkaitan dengan parameter output dalam prosedur tersimpan harus diselesaikan.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'argumen OUT atau INOUT ... bukan pembolehubah' Ralat Apabila Memanggil Prosedur Tersimpan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!