Aktueller Standort: Startseite> Neueste Artikel> So filtern Sie die Abfrageergebnisse mit MySQLI_Result :: Fetch_Column kombiniert mit regulären Ausdrücken

So filtern Sie die Abfrageergebnisse mit MySQLI_Result :: Fetch_Column kombiniert mit regulären Ausdrücken

gitbox 2025-05-26

Bei der Verwendung von PHP für Datenbankvorgänge bietet die MySQLI -Erweiterung viele bequeme Schnittstellen, um Ergebnissätze zu verarbeiten. Unter ihnen ist MySQLI_Result :: Fetch_Column eine kurze und effiziente Möglichkeit, einzelne Spaltenwerte im Ergebnissatz direkt zu erhalten. In der tatsächlichen Entwicklung müssen wir diese Daten jedoch häufig weiter verarbeiten, z. B. die Filterung auf der Grundlage bestimmter Muster, und der reguläre Ausdruck ist praktisch.

In diesem Artikel wird erläutert, wie Fetch_Column und reguläre Ausdrücke kombiniert werden, um Abfrageergebnisse zu filtern, um genauere Datenextraktionseffekte zu erzielen.

Grundlegende Umgebungsvorbereitung

Stellen Sie zunächst sicher, dass Sie korrekt mit der Datenbank verbunden sind und eine Abfrageanweisung ausführen. Zum Beispiel haben wir die folgende Datenbankverbindung und Abfrage:

<Code> $ mysqli = new MySQLi ("localhost", "user", "password", "database");

if ($ mysqli-> connect_error) {
Die ("Verbindung fehlgeschlagen:". $ mysqli-> connect_error);
}

$ query = "E -Mail von Benutzern auswählen";
$ result = $ mysqli-> query ($ query);
</code>

Im obigen Code fragen wir alle E -Mail -Felder aus der Benutzertabelle .

Verwenden Sie Fetch_Column , um einzelne Spaltendaten abzurufen

Fetch_Column ist eine Methode des MySQLI_Result -Objekts, mit dem der Wert der angegebenen Spalte aus der aktuellen Zeile extrahiert wird (Standard ist die erste Spalte). Normalerweise können wir die Linie mit der folgenden Methode mit der Linie extrahieren:

<Code> while ($ mail = $ result-> fetch_column ()) {echo $ e-Mail. "& lt; br & gt;"; } </code>

Dadurch wird einfach alle E -Mail -Adressen ausgegeben.

Filter mit regulären Ausdrücken

Angenommen, wir möchten nur die E -Mail -Adresse mit @gitbox.net enden. Wir können der Schleife regelmäßige Urteile hinzufügen:

<code> $ muster = '/@gitbox\.net$/';

while ($ mail = $ result-> fetch_column ()) {
if (preg_match ($ muster, $ mail) {
Echo $ E -Mail. "<br>";
}
}
</code>

Auf diese Weise können wir nur Postfächer ausgeben, die den Bedingungen erfüllen. Sie können die Regeln entsprechend Ihren Anforderungen anpassen, z. B. nur ein bestimmtes Schlüsselwort oder ein bestimmtes Format erfüllen.

Als Funktion für Multiplexing eingekapselt

Um den Code vielseitiger zu gestalten, können wir ihn als Funktion zusammenschließen:

<Code> Funktion fetch_filtered_column (mysqli_result $ result, String $ muster): Array {$ Matched = []; while ($ value = $ result-> fetch_column ()) {if (preg_match ($ muster, $ value)) {$ Matched [] = $ value; }} return $ Matched; } </code>

Beispiele für die Verwendung sind wie folgt:

<Code> $ result = $ mySQLI-> Abfrage ("E-Mail von Benutzern auswählen"); $ E -Mails = fetch_filtered_column ($ result, '/@gitbox\.net$/');

foreach ($ mails as $ mail) {
Echo $ E -Mail. "<br>";
}
</code>

Anwendungsszenario -Erweiterung

Diese Kombination ist nicht auf Mailboxfilterung beschränkt, kann jedoch auch verwendet werden: Beispiel:

  • Filtere Mobiltelefonnummer -Format filtern

  • Extrahieren Sie die URL eines bestimmten Domänennamens (filtern Sie beispielsweise die Adresse des Domänennamens von Gitbox.net aus der URL heraus).

  • Stellen Sie fest, ob der Benutzername den Benennungsspezifikationen entspricht

Wenn wir beispielsweise die vom Benutzer aus der Datenbank eingereichte URL erhalten und nur die URL des Domänennamens Gitbox.net beibehalten möchten, können wir dies tun:

<Code> $ result = $ mysqli-> query ("Website aus Abonnements auswählen"); $ urls = fetch_filtered_column ($ result, '/^https?:\/(www\.)?gitbox\.net\//');

foreach ($ urls als $ url) {
echo $ url. "<br>";
}
</code>

Zusammenfassen

Durch die Verwendung von MySQLI_Result :: Fetch_column mit regelmäßigen Ausdrücken können wir Daten flexibel und effizient herausfiltern, die bestimmte Regeln aus der Datenbank entsprechen. Dieser Ansatz ist in Code nicht nur präzise, ​​sondern auch sehr geeignet, um große Mengen strukturierter Daten zu behandeln. Durch das Beherrschen dieser Technik können Sie einen Schritt weiter in der Datenverarbeitung gehen.