Rumah >pembangunan bahagian belakang >tutorial php >Mengapa `bindParam` Gagal dengan Pemalar dalam PDO dan Bagaimana untuk Membetulkannya?
Melalui Pemalar ke bindParam: Ralat dan Penyelesaian
Dalam PDO, kaedah bindParam membenarkan pembolehubah mengikat kepada parameter pernyataan melalui rujukan. Walau bagaimanapun, apabila cuba untuk mengikat nilai malar seperti PDO::PARAM_NULL, ralat "Tidak boleh lulus parameter 2 melalui rujukan" mungkin berlaku.
Punca Ralat:
bindParam memerlukan pembolehubah sebagai hujah kedua, yang akan diikat pada parameter dengan rujukan. Percubaan untuk menghantar nilai pemalar secara langsung akan mencetuskan ralat kerana pemalar tidak boleh dihantar melalui rujukan.
Penyelesaian:
Untuk mengikat nilai pemalar pada parameter pernyataan, gunakan bindValue kaedah sebaliknya. bindValue mengikat pembolehubah mengikut nilai, bermakna ia menyalin nilai pada masa memanggil kaedah dan bukannya membuat rujukan.
Kod Diubah Suai:
$stmt->bindValue(':v1', null, PDO::PARAM_NULL);
Dengan menggunakan bindValue, anda boleh mengikat nilai malar dengan betul kepada parameter pernyataan tanpa menghadapi ralat "Tidak boleh lulus parameter 2 melalui rujukan". Ingat untuk menggunakan PDO::PARAM_NULL untuk nilai nol, bukan PDO::PARAM_INT atau ''.
Atas ialah kandungan terperinci Mengapa `bindParam` Gagal dengan Pemalar dalam PDO dan Bagaimana untuk Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!