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\'?

Linda Hamilton
Linda Hamiltonasal
2024-11-20 14:29:16456semak 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 dengan Pemalar

Semasa bekerja dengan PDO, pembangun mungkin menghadapi ralat yang membingungkan "Tidak boleh lulus parameter 2 dengan rujukan." Ini biasanya berlaku apabila menggunakan bindParam dengan nilai tetap.

Untuk membetulkan isu ini, adalah penting untuk menukar daripada menggunakan bindParam kepada bindValue. bindParam mengambil pembolehubah sebagai rujukan dan hanya menginterpolasi nilainya semasa pelaksanaan pernyataan. Sebaliknya, bindValue segera menilai nilai yang disediakan dan memasukkannya ke dalam penyataan.

Contoh berikut menunjukkan penggunaan bindValue yang betul:

$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)');
$stmt->bindValue(':v1', null, PDO::PARAM_INT);

Perhatikan bahawa mengikat nilai malar seperti null harus dilakukan menggunakan PDO::PARAM_INT atau jenis PDO::PARAM lain yang sesuai, bukannya PDO::PARAM_NULL.

Dengan mengikuti pelarasan mudah ini, pembangun boleh menyelesaikan ralat "Tidak boleh lulus parameter 2 dengan rujukan" dengan berkesan dan meneruskan operasi pangkalan data mereka tanpa halangan.

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