Rumah > Artikel > pembangunan bahagian belakang > Mengapakah `bindParam` PDO Gagal dengan Pemalar dan Bagaimana Saya Boleh Membetulkan Ralat \'Tidak boleh lulus parameter 2 melalui rujukan\'?
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);
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!