Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mehrere Parameter in MySQL-Abfragen dynamisch binden?

Wie kann ich mehrere Parameter in MySQL-Abfragen dynamisch binden?

Mary-Kate Olsen
Freigeben: 2024-12-24 06:25:11
Original
216 Leute haben es durchsucht

How Can I Dynamically Bind Multiple Parameters in mysqli Queries?

Dynamische Bindung mehrerer Parameter in MySQLi-Abfragen

Traditionell haben sich PHP-Entwickler auf lange bedingte Anweisungen oder manuelle Verkettung verlassen, um mehrere Parameter zu binden MySQLi-Abfragen. Dies kann mühsam und fehleranfällig sein.

Hardcodierte Parameterbindung

Das von Ihnen bereitgestellte Beispiel zeigt den hartcodierten Ansatz, bei dem die Anzahl der Fragezeichen und Parametertypen manuell festgelegt wird basierend auf der Anzahl der Eingabewerte angepasst. Dies funktioniert zwar, ist aber keine ideale Lösung für die Verarbeitung dynamischer Abfragen.

Argument-Entpackungsoperator

Glücklicherweise wurde mit PHP 5.6 der Argument-Entpackungsoperator (...) eingeführt, der ermöglicht es uns, Arrays als Parameter an Funktionen zu übergeben, die mehrere einzelne Argumente erwarten.

Lösung mit Argument Entpacken

Um eine beliebige Anzahl von Parametern in PHP 5.6 dynamisch zu binden, können wir den folgenden Ansatz verwenden:

1. Erstellen Sie eine Typenzeichenfolge: Verketten Sie das dem Parametertyp entsprechende Zeichen (z. B. s für Zeichenfolge) so oft, wie Parameter vorhanden sind.

$types = str_repeat('s', count($array)); // returns sss...
Nach dem Login kopieren

2. Binden Sie die Parameter: Verwenden Sie den Operator zum Entpacken von Argumenten, um das Array von Parameterwerten als einzelne Parameter zusammen mit der Typenzeichenfolge zu übergeben:

$stmt->bind_param($types, ...$array); 
Nach dem Login kopieren

Beispiel:

$array = ['a','b','c']; 
$sql   = "SELECT name FROM table WHERE city IN (?,".str_repeat('?,', count($array) - 2).")"; //  returns ?,?,?...
$stmt  = $mysqli->prepare($sql);
$stmt->bind_param('s', ...$array); 
$stmt->execute();
Nach dem Login kopieren

Dieser Ansatz verarbeitet elegant eine beliebige Anzahl von Eingabeparametern ohne dass bedingte Anweisungen oder manuelle Verkettung erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Parameter in MySQL-Abfragen dynamisch 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