Rumah > pembangunan bahagian belakang > tutorial php > Bolehkah Penyata Disediakan PDO Menggunakan Semula Pemegang Tempat Dinamakan?

Bolehkah Penyata Disediakan PDO Menggunakan Semula Pemegang Tempat Dinamakan?

Patricia Arquette
Lepaskan: 2024-11-27 13:30:12
asal
577 orang telah melayarinya

Can PDO Prepared Statements Reuse Named Placeholders?

Penyata Disediakan PDO: Menggunakan Semula Pemegang Tempat Dinamakan

Apabila bekerja dengan PDO, adalah wajar untuk menggunakan semula pemegang tempat yang dinamakan dalam pertanyaan SQL yang disediakan. Walau bagaimanapun, ini tidak mungkin disebabkan oleh pengehadan fungsi PDO::prepare PHP.

Seperti dokumentasi PDO, "anda tidak boleh menggunakan penanda parameter bernama dengan nama yang sama dua kali dalam pernyataan yang disediakan." Ini bermakna jika anda cuba menggunakan ruang letak bernama yang sama beberapa kali dalam pertanyaan anda, seperti:

SELECT :Param FROM Table WHERE Column = :Param
Salin selepas log masuk

...kejadian kedua ruang letak ":Param" akan digantikan dengan ruang letak yang unik nama dengan fungsi PDO::prepare. Apabila anda mengikat nilai anda pada ruang letak ":Param" menggunakan PDO::bindValue(":Param"), ia hanya akan menetapkan nilai untuk kejadian pertama pemegang tempat itu. Kejadian kedua akan kekal tidak terikat, membawa kepada ralat apabila anda melaksanakan pertanyaan.

Oleh itu, adalah tidak mungkin untuk menggunakan semula ruang letak yang dinamakan dalam pertanyaan SQL yang disediakan menggunakan PDO. Jika anda perlu mengulangi nilai yang sama beberapa kali dalam pertanyaan anda, anda boleh sama ada menggunakan ruang letak kedudukan (cth. "?", ":1", dsb.) atau mencipta berbilang kenyataan yang disediakan dengan nama pemegang tempat yang berbeza.

Atas ialah kandungan terperinci Bolehkah Penyata Disediakan PDO Menggunakan Semula Pemegang Tempat Dinamakan?. 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