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
Apabila cuba melaksanakan pernyataan yang disediakan menggunakan kaedah bindParam PDO, anda mungkin menghadapi ralat jika anda menggunakan nilai malar sebagai parameter yang akan diikat. Ralat ini berpunca daripada salah faham asas tentang cara bindParam beroperasi.
bindParam menjangkakan pembolehubah sebagai parameter kedua, membolehkan anda mengubah suai nilai yang dihantar kepada penyata itu pada masa akan datang. Ini tidak sesuai untuk nilai tetap, yang tidak boleh diubah suai. Untuk menyelesaikan isu ini, gunakan kaedah bindValue sebaliknya.
Contoh:
Ganti:
$stmt->bindParam(':v1', PDO::PARAM_NULL);
Dengan:
$stmt->bindValue(':v1', null, PDO::PARAM_INT);
Dengan menggunakan bindValue, anda secara eksplisit memberikan nilai khusus kepada pemegang tempat, menghapuskan keperluan untuk rujukan. Ini menyelesaikan ralat dan membolehkan pernyataan anda dilaksanakan dengan betul.
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!