Apabila menggunakan Pernyataan Disediakan dengan pemalar, ralat seperti "Tidak boleh lulus parameter 2 melalui rujukan" mungkin timbul. Tidak seperti bindParam, yang berfungsi dengan rujukan dan tidak menarik nilai semasa bindParam pelaksanaan, bindValue bertujuan untuk tujuan ini.
Kod bermasalah:
$stmt->bindParam(':v1', PDO::PARAM_NULL);
Untuk menyelesaikan isu ini, gantikan bindParam dengan bindValue dan berikan nilai tetap sebagai hujah.
$stmt->bindValue(':v1', null, PDO::PARAM_INT);
Sila ambil perhatian bahawa menggunakan PDO::PARAM_NULL dalam bindValue mungkin tidak berfungsi untuk semua orang. Sebaliknya, gunakan PDO::PARAM_INT atau pemalar yang sesuai yang sepadan dengan jenis data lajur.
Selain itu, apabila menggunakan bindValue, anda harus menentukan jenis data menggunakan argumen ketiga. Ini memastikan pangkalan data mengendalikan nilai dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Tidak Dapat Melepasi Parameter dengan Rujukan' Apabila Menggunakan PDO bindParam dengan Pemalar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!