Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Menggunakan `bindParam` dengan Nilai Malar dalam PDO?

Mengapa Saya Tidak Boleh Menggunakan `bindParam` dengan Nilai Malar dalam PDO?

Patricia Arquette
Lepaskan: 2024-12-08 05:10:12
asal
324 orang telah melayarinya

Why Can't I Use `bindParam` with Constant Values in PDO?

Tidak Boleh Lulus Parameter Melalui Rujukan dengan bindParam untuk Nilai Malar?

Apabila bekerja dengan PDO, anda mungkin menghadapi ralat "Tidak boleh lulus parameter 2 dengan rujukan" apabila menggunakan bindParam dengan nilai tetap. Inilah sebabnya dan cara menyelesaikannya:

Isunya

bindParam menjangkakan pembolehubah akan terikat sebagai rujukan, bukan nilai tetap. Nilai malar seperti null, '' (rentetan kosong) atau PDO::PARAM_NULL tidak boleh dihantar melalui rujukan.

Penyelesaian

Untuk mengikat nilai malar, gunakan bindValue bukannya bindParam. bindValue menerima nilai literal tanpa memberikannya melalui rujukan. Kod berikut menggunakan bindValue untuk memasukkan nilai NULL:

$stmt->bindValue(':v1', null, PDO::PARAM_NULL);
Salin selepas log masuk

Nota:

  • bindParam memerlukan pembolehubah kerana ia mencipta rujukan kepada nilai pembolehubah .
  • bindValue tidak mencipta rujukan dan menerima nilai tetap terus.
  • PDO::PARAM_NULL tidak boleh digunakan dengan bindValue.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan `bindParam` dengan Nilai Malar dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan