Rumah >pangkalan data >tutorial mysql >Cara Melepasi Parameter Tatasusunan dan Menggunakan Klausa LIMIT dengan 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>
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:
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!