Cara Melepasi Parameter Tatasusunan dan Menggunakan Klausa LIMIT dengan PDO

Barbara Streisand
Lepaskan: 2024-10-23 19:37:01
asal
930 orang telah melayarinya

How to Pass Array Parameters and Use LIMIT Clause with PDO

Melalui Parameter Tatasusunan dan Menggunakan Klausa LIMIT dengan PDO

Apabila bekerja dengan pertanyaan pangkalan data, ia boleh memberi manfaat untuk menghantar tatasusunan parameter kepada pernyataan PDO sambil menggunakan klausa LIMIT. Walau bagaimanapun, ini boleh mencabar apabila menggunakan kaedah bindParam untuk menetapkan parameter individu.

Dilema

Cabaran timbul kerana klausa LIMIT memerlukan nilai angka tertentu untuk diikat , manakala kaedah pelaksanaan menjangkakan tatasusunan parameter bernama. Ketidakserasian ini menghalang kedua-dua pendekatan daripada digunakan secara serentak.

Mengatasi Isu

Penyelesaian terletak pada melumpuhkan tetapan lalai PDO::ATTR_EMULATE_PREPARES. Apabila didayakan, PDO secara dalaman menjana SQL dinamik dan memetik nilai, pada asasnya meniru kenyataan yang disediakan. Walau bagaimanapun, tingkah laku lalai ini mengganggu penghantaran parameter yang dinamakan.

Melumpuhkan Emulated Prepares

Dengan menetapkan PDO::ATTR_EMULATE_PREPARES kepada false menggunakan kaedah setAttribute, tingkah laku lalai dilumpuhkan . Ini membolehkan PDO menggunakan pernyataan yang disediakan sebenar, membolehkan pengikatan parameter yang dinamakan sambil masih menggunakan klausa LIMIT.

Contoh Penggunaan

<code class="php">$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql = "SELECT * FROM table WHERE id LIKE CONCAT('%', :id, '%') LIMIT :limit1, :limit2";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':id' => $id, ':limit1' => $limit1, ':limit2' => $limit2)); // Works!</code>
Salin selepas log masuk

Pertimbangan Prestasi

Persediaan yang ditiru digunakan secara lalai untuk MySQL untuk meningkatkan prestasi. Melumpuhkan persediaan yang dicontohi mungkin sedikit mengurangkan prestasi, tetapi ia membolehkan lebih fleksibiliti dalam pengikatan parameter.

Sumber Tambahan

Untuk mendapatkan maklumat lanjut tentang topik ini, rujuk sumber berikut:

  • [PDO MySQL: Gunakan PDO::ATTR_EMULATE_PREPARES atau tidak?](https://stackoverflow.com/questions/3273325/pdo-mysql-use-pdo-attr-emulate-prepares-or -bukan)

Atas ialah kandungan terperinci Cara Melepasi Parameter Tatasusunan dan Menggunakan Klausa LIMIT dengan PDO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!