Heim >Backend-Entwicklung >PHP-Tutorial >Wie führt man „WHERE... IN'-Abfragen mit mehreren IDs in PDO ordnungsgemäß aus?

Wie führt man „WHERE... IN'-Abfragen mit mehreren IDs in PDO ordnungsgemäß aus?

DDD
DDDOriginal
2024-10-30 08:03:02332Durchsuche

How to Properly Execute

Korrekte PDO-Syntax für „WHERE... IN“-Abfragen mit mehreren IDs

Beim Löschen von Datenbankeinträgen basierend auf einer Liste von IDs, Die Aufrechterhaltung der Datenintegrität ist von entscheidender Bedeutung. Eine häufige Herausforderung bei PDO ist die Ausführung von „WHERE... IN“-Abfragen mit mehreren Werten.

In Ihrem Fall kann die Abfrage nicht alle bis auf die erste ID löschen, da sie die durch Kommas getrennte Liste als eine ID behandelt Einzelwert. Um dieses Problem zu beheben, müssen Sie einen Platzhalter für jede ID in der Liste einfügen.

Lösung:

Um eine Liste von IDs in einer PDO-vorbereiteten Anweisung korrekt zu verwenden, Befolgen Sie diese Schritte:

  1. Konvertieren Sie die durch Kommas getrennte ID-Liste in ein Array, z. B. $idlist = ['260', '201', '221', ...];.
  2. Erstellen Sie eine Reihe von Fragezeichen, die die Anzahl der benötigten Platzhalter darstellen, z. B. $questionmarks = str_repeat("?,", count($idlist)-1) . „?“;. Dadurch wird eine Zeichenfolge wie „?,,,,,,,,,“ für 10 IDs generiert.
  3. Bereiten Sie die PDO-Anweisung mit der Fragezeichenzeichenfolge vor, z. B. $stmt = $dbh->prepare( „DELETE FROM foo WHERE id IN ($questionmarks)“);.
  4. Schließlich durchlaufen Sie das ID-Array und binden jeden Wert an seinen entsprechenden Platzhalter, z. B.

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

Indem Sie diese Schritte befolgen, können Sie „WHERE... IN“-Abfragen mit mehreren IDs genau ausführen und die Datenkonsistenz wahren.

Das obige ist der detaillierte Inhalt vonWie führt man „WHERE... IN'-Abfragen mit mehreren IDs in PDO ordnungsgemäß aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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