Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich ein Array an eine IN()-Klausel in PDO binden?

Wie kann ich ein Array an eine IN()-Klausel in PDO binden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-22 02:37:14871Durchsuche

How Can I Bind an Array to an IN() Clause in PDO?

Binden eines Arrays an eine IN()-Bedingung in PDO-Abfragen

Übersicht

PHPs PDO (PHP Data Objects) bietet einen Mechanismus zum Binden von Platzhaltern bei Abfragen nach Werten in einem Array. Es unterstützt jedoch nicht nativ die Bindung eines Wertearrays an eine IN()-Bedingung.

Erstellen einer Platzhalterzeichenfolge

Um dieses Problem zu umgehen, können Sie manuell eine Platzhalterzeichenfolge erstellen, indem Sie darüber iterieren das Array und die Verkettung von Platzhaltern mit Kommas.

$ids = [1, 2, 3, 7, 8, 9];
$in = str_repeat('?,', count($ids) - 1) . '?';

Die Variable $in enthält eine Zeichenfolge wie „?,?,?,?,?,?“ Fragen Sie das Array ab und übergeben Sie es als Argumente:

Alternativer Ansatz: Benannt Platzhalter

Für benannte Platzhalter wie :id0, :id1, :id2 usw. müssen Sie manuell eine Folge von Platzhaltern erstellen und Werte in einem assoziativen Array sammeln.
$stmt = $db->prepare("SELECT * FROM table WHERE id IN($in)");

Fazit
$stmt->execute($ids);

Während PDO das Binden eines Arrays an eine IN()-Bedingung nicht explizit zulässt, können Sie die Funktionalität durch replizieren Manuelles Erstellen einer Platzhalterzeichenfolge oder Verwenden benannter Platzhalter mit einem assoziativen Array. Diese Ansätze bieten eine praktische Möglichkeit, Arrays in IN()-Bedingungen innerhalb von PDO-Abfragen zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Array an eine IN()-Klausel in PDO binden?. 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