Mit benutzerdefinierten Abfragen können Sie beliebige Daten lesen und / oder bearbeiten. Sofort öffnet sich eine Welt neuer Möglichkeiten.
Die grundlegenden Funktionen in WordPress sind für die meisten einfachen Anforderungen geeignet, aber was würden Sie tun, wenn Sie bestimmte Anforderungen implementieren möchten? Schreibst du vielleicht ein Plugin? Dann sollten Sie lernen, wie Sie SQL-Abfragen in WordPress jetzt verwenden können! Die offiziellen Referenzen finden Sie im WordPress-Codex (Benutzerdefinierte Abfragen und die WPDB-Klasse)..
wpdb
KlasseDiese globale WordPress-Klasse ist der Schlüssel für die Verwendung von Abfragen. Tatsächlich verwendet jede Funktion diese Klasse.
Abfrage
Die Abfragefunktion benötigt eine Zeichenfolge, die die benutzerdefinierte Abfrage enthält. Der Rückgabewert ist eine Ganzzahl, die der Anzahl der betroffenen / ausgewählten Zeilen entspricht, und im Fehlerfall false.
$ query = "SELECT COUNT (Apfel) VON Früchten"; $ wpdb-> query ($ query);
Ergebnisse bekommen
Diese Funktion ruft beim Ausführen einer Abfrage mehrere Zeilen ab. Standardmäßig ist das Ergebnis der Funktion ein Array.
$ query = "SELECT * FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' UND wtt.count = 0"; $ wpdb-> get_results ($ query);
get_var
Dadurch wird eine Variable aus der Datenbank zurückgegeben. Das vollständige Ergebnis der Abfrage wird jedoch zur späteren Verwendung zwischengespeichert. Gibt NULL zurück, wenn kein Ergebnis gefunden wird.
$ query = "SELECT COUNT (*) FROM Benutzer"; $ wpdb-> get_var ($ query);
get_row
Als Ergebnis der Funktion wird eine vollständige Zeile zurückgegeben. Dies kann ein Objekt, ein assoziatives Array oder ein numerisch indiziertes Array sein. NULL ist das Ergebnis, wenn keine übereinstimmenden Daten gefunden werden. result_type
kann sein OBJEKT
, ARRAY_A
oder ARRAY_N
(Objekt, assoziatives Array oder nummeriertes Array). Offset ist eine Ganzzahl mit einem Standardwert von 0.
$ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ query, ARRAY_A, 3);
get_col
Verwenden Sie diese Funktion, um eine Spalte zu erhalten. Die Ausgabe wird ein dimensionales Array sein. Ein leeres Array wird zurückgegeben, wenn kein Ergebnis gefunden wird. Der zweite Parameter ist der Spaltenversatz.
$ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ query, 3);
Laut dem php.net Handbuch:
"Sie [vorbereitete Abfragen] können als eine Art kompilierte Vorlage für die SQL betrachtet werden, die eine Anwendung ausführen möchte, die mithilfe von variablen Parametern angepasst werden kann."
Sie können SQL-Abfragen vor SQL-Injection-Angriffen schützen. Kurz gesagt, Daten in Abfragen müssen vor dem Ausführen der Abfrage mit SQL gesichert werden, um Injektionsangriffe zu verhindern. Dies ist mit der Vorbereitungsmethode leicht möglich. Im folgenden Beispiel werden die Werte '10', 'Affe' und 'Apfel' bei Verwendung in dieser Methode mit Escapezeichen versehen.
// Verwendung: $ wpdb-> prepare ('query' [, value_parameter, value_parameter…]); $ wpdb-> query ($ wpdb-> prepare ("INSERT INTO test_table (post_id, animal, food)) WERTE (% d,% s,% s)", Array (10, 'Affe', 'Apfel'))) ;
Mit dem können Sie Fehlermeldungen ein- und ausschalten show_errors
und hide_errors
Funktionen, Sie können aber auch drucken:
$ wpdb-> show_errors (); $ wpdb-> hide_errors ();
Das Löschen des Caches kann mit der spülen
Funktion.
$ wpdb-> flush ();
$ wpdb-> insert ($ table, $ data, $ format); $ wpdb-> insert ('foods', array ('fruit' => apple ',' year '=> 2012), array ('% s ','% d '));
Die verwendeten Parameter in der Reihenfolge sind:
$ data
. Wenn nicht vorhanden, werden alle Werte als Zeichenfolgen behandelt$ wpdb-> update ('foods', array ('fruit' => 'apple', // string 'year' => 'value2' // ganze Zahl (number)), array ('ID' => 1), array ('% s', // value1 '% d' // value2), array ('% d'));
Die verwendeten Parameter in der Reihenfolge sind:
Mit dieser Funktion erhalten Sie Informationen zu den Spalten des neuesten Ergebnisses. Wenn eine Funktion eine zurückgegeben hat OBJEKT
und es gibt Eigenschaften, von denen Sie nicht viel wissen, dies kann nützlich sein.
$ wpdb-> get_col_info ('type', offset);
Name
- Spaltenname (dies ist die Standardeinstellung)Tabelle
- Name der Tabelle, zu der die Spalte gehörtmaximale Länge
- maximale Länge der Säulenicht null
- 1, wenn die Spalte nicht NULL sein kannAuf WordPress-Datenbanktabellen kann im verwiesen werden wpdb
Klasse. Dies ist sehr praktisch, da Tabellennamen sich von den Standardnamen unterscheiden können. Hier ist eine Liste von WordPress-Datenbanktabellenreferenzen:
$ wpdb-> Beiträge;
$ wpdb-> postmeta;
$ wpdb-> Kommentare;
$ wpdb-> commentmeta;
$ wpdb-> terms;
$ wpdb-> term_taxonomy;
$ wpdb-> term_relationships;
$ wpdb-> Benutzer;
$ wpdb-> usermeta;
$ wpdb-> Links;
$ wpdb-> Optionen;
Beachten Sie, dass wir das Präfix nicht angeben müssen wpdb
Die Klasse kümmert sich darum für uns.
Da haben wir es! Eine Referenz für benutzerdefinierte Abfragen in WordPress, alles an einem Ort für Sie.