Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `bindParam` PDO Gagal dengan Pemalar dan Bagaimana Saya Boleh Membetulkan Ralat \'Tidak boleh lulus parameter 2 melalui rujukan\'?

Mengapakah `bindParam` PDO Gagal dengan Pemalar dan Bagaimana Saya Boleh Membetulkan Ralat \'Tidak boleh lulus parameter 2 melalui rujukan\'?

Linda Hamilton
Lepaskan: 2024-11-20 14:29:16
asal
558 orang telah melayarinya

Why Does PDO's `bindParam` Fail with Constants, and How Can I Fix the

Menyelesaikan masalah "Tidak boleh lulus parameter 2 melalui rujukan" Ralat dalam PDO bindParam dengan Pemalar

Semasa bekerja dengan PDO, pembangun mungkin menghadapi ralat yang membingungkan "Tidak boleh lulus parameter 2 dengan rujukan." Ini biasanya berlaku apabila menggunakan bindParam dengan nilai tetap.

Untuk membetulkan isu ini, adalah penting untuk menukar daripada menggunakan bindParam kepada bindValue. bindParam mengambil pembolehubah sebagai rujukan dan hanya menginterpolasi nilainya semasa pelaksanaan pernyataan. Sebaliknya, bindValue segera menilai nilai yang disediakan dan memasukkannya ke dalam penyataan.

Contoh berikut menunjukkan penggunaan bindValue yang betul:

$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)');
$stmt->bindValue(':v1', null, PDO::PARAM_INT);
Salin selepas log masuk

Perhatikan bahawa mengikat nilai malar seperti null harus dilakukan menggunakan PDO::PARAM_INT atau jenis PDO::PARAM lain yang sesuai, bukannya PDO::PARAM_NULL.

Dengan mengikuti pelarasan mudah ini, pembangun boleh menyelesaikan ralat "Tidak boleh lulus parameter 2 dengan rujukan" dengan berkesan dan meneruskan operasi pangkalan data mereka tanpa halangan.

Atas ialah kandungan terperinci Mengapakah `bindParam` PDO Gagal dengan Pemalar dan Bagaimana Saya Boleh Membetulkan Ralat 'Tidak boleh lulus parameter 2 melalui rujukan'?. 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