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
Freigeben: 2024-12-22 02:37:14
Original
866 Leute haben es durchsucht

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) . '?';
Nach dem Login kopieren

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)");
Nach dem Login kopieren

Fazit
$stmt->execute($ids);
Nach dem Login kopieren

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!

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