Rumah >pangkalan data >tutorial mysql >Bolehkah Anda Mengikat Parameter Tatasusunan dengan Klausa LIMIT dalam PDO?
Melalui Parameter Tatasusunan dengan Klausa LIMIT dalam PDO
Dalam PHP, kelas PDOStatement menyediakan cara untuk melaksanakan pertanyaan SQL dengan nilai parameter. Walau bagaimanapun, apabila menggunakan klausa LIMIT, parameter pengikatan menggunakan kaedah bindParam() tidak berfungsi.
Untuk mengatasi isu ini, pertimbangkan penyelesaian berikut:
<code class="php">$sql = "SELECT * FROM table WHERE id LIKE CONCAT('%', :id, '%') LIMIT :offset, :limit"; $stmt = $pdo->prepare($sql); // Turn off PDO emulation of prepared statements for MySQL $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $array = [':id' => 5]; // Bind the LIMIT parameters $stmt->bindParam(':offset', $limit1, PDO::PARAM_INT); $stmt->bindParam(':limit', $limit2, PDO::PARAM_INT); // Execute the query $stmt->execute($array); $results = $stmt->fetchAll();</code>
Dengan melumpuhkan emulasi PDO bagi penyata yang disediakan (lalai untuk MySQL), ia membolehkan anda menggunakan nilai parameter dalam klausa LIMIT. Kaedah ini memastikan pertanyaan anda dilaksanakan dengan betul dengan parameter yang ditentukan.
Perhatikan bahawa mematikan emulasi boleh menjejaskan prestasi. Untuk butiran lanjut, rujuk dokumentasi tentang PDO MySQL: Gunakan PDO::ATTR_EMULATE_PREPARES atau tidak?.
Atas ialah kandungan terperinci Bolehkah Anda Mengikat Parameter Tatasusunan dengan Klausa LIMIT dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!