Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengikat Nilai SUKA dengan % Aksara dalam PDO?

Bagaimana untuk Mengikat Nilai SUKA dengan % Aksara dalam PDO?

Linda Hamilton
Lepaskan: 2024-11-16 16:59:03
asal
759 orang telah melayarinya

How to Bind LIKE Values with the % Character in PDO?

Mengikat Nilai LIKE dengan % Aksara dalam PDO

Dalam pertanyaan SQL dipacu PDO, adalah perkara biasa untuk menghadapi keperluan untuk mengikat nilai LIKE yang merangkumi % aksara kad bebas. Mengikat nilai sedemikian memastikan pencegahan suntikan SQL. Walau bagaimanapun, sintaks untuk berbuat demikian boleh mengelirukan.

Pertanyaan dengan LIKE '%': Pertimbangan Mengikat

Pertimbangkan pertanyaan:

select wrd from tablename WHERE wrd LIKE '$partial%'
Salin selepas log masuk

Di sini, anda mahu ikat pembolehubah $partial menggunakan PDO. Dilema timbul apabila memutuskan cara untuk mengikat % aksara.

Pilihan untuk Mengikat

Pilihan 1:

select wrd from tablename WHERE wrd LIKE ':partial%'
Salin selepas log masuk

Ikat :separa kepada $ partial="somet".

Pilihan 2:

select wrd from tablename WHERE wrd LIKE ':partial'
Salin selepas log masuk

Ikat :separa kepada $partial="somet%".

Pilihan 3 (Alternatif):

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Salin selepas log masuk

Lakukan penggabungan rentetan menggunakan fungsi MySQL CONCAT.

Pertimbangan Kes Khas

Jika perkataan separa yang dicari mengandungi aksara % atau garis bawah, pengendalian khas diperlukan. Penyelesaiannya melibatkan penggunaan klausa ESCAPE dalam pernyataan PDO:

$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);
Salin selepas log masuk

Teknik ini memastikan bahawa aksara khas ditafsirkan dengan betul dalam ungkapan LIKE.

Atas ialah kandungan terperinci Bagaimana untuk Mengikat Nilai SUKA dengan % Aksara dalam PDO?. 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