Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstellt man sicher dynamische LIKE-Abfragen mit von MySQLi vorbereiteten Anweisungen?

Wie erstellt man sicher dynamische LIKE-Abfragen mit von MySQLi vorbereiteten Anweisungen?

DDD
DDDOriginal
2024-12-05 21:30:12700Durchsuche

How to Securely Build Dynamic LIKE Queries with MySQLi Prepared Statements?

Verwenden von vorbereiteten Anweisungen mit dynamischen LIKE-Bedingungen

Um eine SELECT-Abfrage mit einer dynamischen Anzahl von LIKE-Bedingungen mithilfe von MySQLi-vorbereiteten Anweisungen zu erstellen, ist dies der Fall Es ist wichtig, die Prozentzeichen (%) um die Parameter zu wickeln, nicht um die Platzhalter.

Hier ist eine Schritt-für-Schritt-Anleitung Anleitung zur Implementierung in PHP:

  1. Ausdrücke und Datentypen extrahieren und vorbereiten:
    Teilen Sie die Benutzereingaben mithilfe von explosion() in einzelne Suchbegriffe auf. Initialisieren Sie Arrays zum Speichern von WHERE-Klauselausdrücken ($conditions) und der Kombination von Datentypen und Werten ($parameters).
$conditions = [];
$parameters = [''];
  1. Ausdrücke und Parameter erstellen:
    Durchlaufen Sie die Suchbegriffe, erstellen Sie eine Reihe von LIKE-Ausdrücken und fügen Sie entsprechende Datentypen hinzu $parameters.
foreach ($search_exploded as $value) {
    $conditions[] = "name LIKE ?";
    $parameters[0] .= 's';
    $parameters[] = "%{$value}%";
}
  1. Abfrage vorbereiten und ausführen:
    Verketten Sie die $conditions in der WHERE-Klausel. Bereiten Sie die Anweisung mit der Abfrage vor, binden Sie die $parameters mit dem Splat-Operator (...) und führen Sie sie aus.
$query = "SELECT * FROM info";
if ($conditions) {
    $stmt = $mysqli->prepare($query . ' WHERE ' . implode(' OR ', $conditions));
    $stmt->bind_param(...$parameters);
    $stmt->execute();
    $result = $stmt->get_result();
} else {
    $result = $conn->query($query);
}

Durch Befolgen dieser Schritte können Sie Abfragen effektiv mit einer Dynamik ausführen Anzahl der LIKE-Bedingungen unter Verwendung von MySQLi-vorbereiteten Anweisungen, was sowohl Flexibilität als auch Sicherheit gewährleistet.

Das obige ist der detaillierte Inhalt vonWie erstellt man sicher dynamische LIKE-Abfragen mit von MySQLi vorbereiteten Anweisungen?. 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