Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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\'?

Barbara Streisand
Barbara Streisandasal
2024-11-19 05:39:02296semak imbas

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

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!

Kenyataan:
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