Heim > Backend-Entwicklung > PHP-Tutorial > Wie lösche ich mehrere Elemente mit „WHERE... IN' in PDO-vorbereiteten Anweisungen?

Wie lösche ich mehrere Elemente mit „WHERE... IN' in PDO-vorbereiteten Anweisungen?

Mary-Kate Olsen
Freigeben: 2024-10-31 22:34:02
Original
658 Leute haben es durchsucht

How to Delete Multiple Items with `WHERE... IN` in PDO Prepared Statements?

PDO-Abfragen mit „WHERE... IN“-Klauseln

Bei Verwendung der „WHERE... IN“-Klausel in PDO-Abfragen Entwickler stoßen häufig auf Probleme, die dazu führen, dass nur das erste Element aus der Liste gelöscht wird. Dies liegt daran, dass das Mischen von Werten (Zahlen) mit der Kontrollflusslogik (Kommas) innerhalb vorbereiteter Anweisungen nicht kompatibel ist. Um dieses Problem zu lösen, benötigt jeder Wert in der Liste einen eigenen Platzhalter.

Lösung:

  1. Trennen Sie die Werte in ein Array, z. B.:
$idlist = array('260','201','221','216','217','169','210','212','213');
Nach dem Login kopieren
  1. Erstellen Sie eine Reihe von Fragezeichen, die die Platzhalter für jeden Wert darstellen, mit einem Komma als Trennzeichen, z. B.:
$questionmarks = str_repeat("?,", count($idlist)-1) . "?";
Nach dem Login kopieren
  1. Bereiten Sie die Abfrage vor mit den Fragezeichen als „IN“-Klauselparameter, z. B.:
$stmt = $dbh->prepare("DELETE FROM `foo` WHERE `id` IN ($questionmarks)");
Nach dem Login kopieren
  1. Durchlaufen Sie das $idlist-Array und binden Sie jeden Wert an einen Platzhalter, z. B.:
foreach ($idlist as $id) {
  $stmt->bindParam($i, $id);
  $i++; 
}
Nach dem Login kopieren

Sobald die Anweisung vorbereitet und die Parameter gebunden sind, führt die Ausführung der Abfrage zum erfolgreichen Löschen aller im $idlist-Array angegebenen Elemente.

Das obige ist der detaillierte Inhalt vonWie lösche ich mehrere Elemente mit „WHERE... IN' in PDO-vorbereiteten Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage