Verwendung benutzerdefinierter Variablen zum mehrfachen Binden von Parametern
Bei der Implementierung von Suchfunktionen für eine Datenbank geht es üblicherweise um die Verwendung einer vorbereiteten Anweisung und Bindung eines Suchbegriffparameters. Allerdings schränkt MySQL die wiederholte Verwendung benannter Parameter in einer einzelnen vorbereiteten Anweisung ein.
Alternative Lösungen
Anstatt auf die Verwendung mehrerer Parameter zurückzugreifen (z. B. :term1, : term2), erwägen Sie die Nutzung der benutzerdefinierten Variablen von MySQL. Dadurch können Sie den Parameterwert in einer temporären Variablen innerhalb der Datenbank selbst speichern.
Implementierung
So implementieren Sie dies:
SET @term = :term;
$stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute();
SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term;
Vorteile
Diese Methode bietet mehrere Vorteile:
Vorbehalt
Der einzige Vorbehalt ist der Mehraufwand für die Ausführung der zusätzlichen Abfrage zum Festlegen der benutzerdefinierten Variablen. Allerdings überwiegen seine Vorteile diesen kleinen Nachteil bei weitem.
Das obige ist der detaillierte Inhalt vonWie können benutzerdefinierte Variablen die wiederholte Parameterbindungsbeschränkung von MySQL lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!