Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mehrere gebundene Parameter in MySQL-vorbereiteten Anweisungen für den Mustervergleich effizient verwenden?

Wie kann ich mehrere gebundene Parameter in MySQL-vorbereiteten Anweisungen für den Mustervergleich effizient verwenden?

Patricia Arquette
Freigeben: 2024-12-05 07:20:11
Original
811 Leute haben es durchsucht

How Can I Efficiently Use Multiple Bound Parameters in MySQL Prepared Statements for Pattern Matching?

Mehrfachverwendung gebundener Parameter

Bei der Erstellung einer einfachen Datenbanksuchmaschine müssen Entwickler möglicherweise verschiedene Arten von Informationen einbeziehen und abrufen Daten aus mehreren Tabellen. Wenn vorbereitete Anweisungen mit gebundenen Parametern für den Mustervergleich verwendet werden, wird in der PDO-Dokumentation davor gewarnt, denselben benannten Parametermarker mehr als einmal zu verwenden.

Um diese Einschränkung zu umgehen, besteht eine mögliche Lösung darin, jeden :term-Parameter durch :termX zu ersetzen (wobei X term = n darstellt). Dies kann jedoch umständlich und fehleranfällig werden.

Ein alternativer Ansatz ist die Verwendung benutzerdefinierter MySQL-Variablen. Durch die Speicherung von Parametern in diesen Variablen wird der Code besser lesbar und es sind keine zusätzlichen PHP-Funktionen erforderlich. So funktioniert es:

Beispiel:

$sql = "SET @term = :term";

try {
    $stmt = $dbh->prepare($sql);
    $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR);
    $stmt->execute();
} catch (PDOException $e) {
    // error handling
}

$sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term";

try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    $stmt->fetchAll();
} catch (PDOException $e) {
    // error handling
}
Nach dem Login kopieren

Vorteile benutzerdefinierter Variablen:

  • Verbessert die Lesbarkeit des Codes
  • Macht zusätzliches PHP überflüssig Funktionen
  • Keine Nebenwirkungen in Mehrbenutzerumgebungen durch sitzungsgebundene Variablen in MySQL

Überlegung:

Ein zusätzliches MySQL Es ist eine Abfrage erforderlich, die möglicherweise aus Leistungsgründen berücksichtigt werden muss.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere gebundene Parameter in MySQL-vorbereiteten Anweisungen für den Mustervergleich effizient verwenden?. 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