Menyelesaikan Isu Parameter Berulang dalam Penyata Disediakan dengan Pembolehubah Ditakrif Pengguna
Membina enjin carian pangkalan data selalunya melibatkan banyak parameter input pengguna. Walau bagaimanapun, penggunaan semula secara langsung penanda parameter yang dinamakan dalam pernyataan yang disediakan secara amnya tidak disokong.
Alternatif unggul ialah memanfaatkan Pembolehubah Ditakrifkan Pengguna MySQL. Kaedah ini meningkatkan kejelasan dan kebolehbacaan kod.
Berikut ialah cara untuk melaksanakan penyelesaian ini:
<code class="language-sql">$sql = "SET @term = :term"; try { $stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute(); } catch (PDOException $e) { // Error handling }</code>
<code class="language-sql">$sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term"; try { $stmt = $dbh->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(); //More descriptive variable name } catch (PDOException $e) { // Error handling }</code>
Teknik ini membolehkan penggunaan semula penanda parameter tunggal beberapa kali, memintas pengehadan pengulangan terus parameter yang dinamakan. Walaupun ia memperkenalkan pertanyaan MySQL tambahan untuk menetapkan pembolehubah, kod yang terhasil kebolehbacaan dan kesederhanaan yang lebih baik sering membenarkan overhed kecil ini.
Atas ialah kandungan terperinci Bagaimanakah Pembolehubah Ditakrifkan Pengguna MySQL Boleh Menyelesaikan Isu Parameter Berulang dalam Penyata Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!