Bagaimana untuk Melaksanakan Pertanyaan \'WHERE... IN\' dengan Berbilang ID dalam PDO dengan betul?

DDD
Lepaskan: 2024-10-30 08:03:02
asal
279 orang telah melayarinya

How to Properly Execute

Sintaks PDO yang betul untuk Pertanyaan "WHERE... IN" dengan Berbilang ID

Apabila memadamkan rekod pangkalan data berdasarkan senarai ID, mengekalkan integriti data adalah penting. Satu cabaran biasa yang dihadapi dengan PDO ialah melaksanakan pertanyaan "WHERE... IN" dengan berbilang nilai.

Dalam kes anda, pertanyaan itu gagal memadamkan semua kecuali ID pertama kerana ia menganggap senarai yang dipisahkan koma sebagai nilai tunggal. Untuk menyelesaikan masalah ini, anda perlu memasukkan pemegang tempat bagi setiap ID dalam senarai.

Penyelesaian:

Untuk menggunakan senarai ID dengan betul dalam pernyataan yang disediakan PDO, ikut langkah berikut:

  1. Tukar senarai ID yang dipisahkan koma kepada tatasusunan, cth., $idlist = ['260', '201', '221', ...];.
  2. Buat rentetan tanda soal yang mewakili bilangan ruang letak yang diperlukan, cth., $tanda tanya = str_repeat("?,", count($idlist)-1) . "?";. Ini akan menghasilkan rentetan seperti "?,,,,,,,,," untuk 10 ID.
  3. Sediakan pernyataan PDO dengan rentetan tanda soal, cth., $stmt = $dbh->prepare( "DELETE FROM foo WHERE id IN ($questionmarks)");.
  4. Akhir sekali, gelung melalui tatasusunan ID dan ikat setiap nilai pada pemegang tempat yang sepadan, cth.,

    <code class="php">foreach ($idlist as $id) {
     $stmt->bindParam(..., $id);
    }</code>
    Salin selepas log masuk

Dengan mengikut langkah ini, anda boleh melaksanakan pertanyaan "WHERE... IN" dengan berbilang ID dengan tepat dan mengekalkan ketekalan data.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan \'WHERE... IN\' dengan Berbilang ID dalam PDO dengan betul?. 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
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!