Met aangepaste query's kunt u elke gewenste gegevenslezing en / of -manipulatie uitvoeren. Direct opent een wereld van nieuwe mogelijkheden.
De basisfunctionaliteiten in WordPress zijn prima voor de meeste eenvoudige behoeften, maar wat zou u doen als u bepaalde specifieke behoeften wilt implementeren? Schrijf je misschien een plug-in? Dan zou u nu moeten leren hoe u SQL-query's in WordPress kunt gebruiken! De officiële referenties zijn te vinden in de WordPress Codex (Custom Queries en de WPDB-klasse).
wpdb
KlasseDeze globale WordPress-klasse is de sleutel voor het gebruik van query's. In feite gebruikt elke functie deze klasse.
vraag
De query-functie heeft een tekenreeks nodig die de aangepaste query bevat. De terugkerende waarde is een geheel getal dat overeenkomt met het aantal rijen dat is aangetast / geselecteerd en is onwaar als er een fout optreedt.
$ query = "SELECT COUNT (apple) FROM fruits"; $ Wpdb-> vraag ($ vraag);
get_results
Deze functie krijgt meerdere rijen bij het uitvoeren van een query. Standaard is het resultaat van de functie een array.
$ query = "SELECT * FROM wp_terms wt INNERLIJK JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' AND wtt.count = 0"; $ Wpdb-> get_results ($ vraag);
get_var
Hiermee wordt één variabele uit de database geretourneerd, maar het volledige resultaat van de query wordt in de cache bewaard voor later gebruik. Retourneert NULL als er geen resultaat wordt gevonden.
$ query = "SELECTEER COUNT (*) VAN gebruikers"; $ Wpdb-> get_var ($ vraag);
get_row
Een volledige rij wordt als resultaat van de functie geretourneerd, die een object, een associatieve array of een numeriek geïndexeerde array kan zijn. NULL is het resultaat wanneer er geen overeenkomende gegevens worden gevonden. result_type
kan zijn VOORWERP
, ARRAY_A
of ARRAY_N
(object, associatieve array of genummerde array). Offset is een geheel getal met een standaardwaarde van 0.
$ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ query, ARRAY_A, 3);
get_col
Gebruik deze functie om een kolom te krijgen. Uitvoer zal een dimensionale array zijn. Een lege array wordt geretourneerd als er geen resultaat wordt gevonden. De tweede parameter is de kolomverschuiving.
$ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ query, 3);
Volgens de php.net handleiding:
"Ze [voorbereide query's] kunnen worden beschouwd als een soort gecompileerde sjabloon voor de SQL die een toepassing wil uitvoeren, die kan worden aangepast met behulp van variabele parameters."
U kunt SQL-query's beschermen tegen SQL-injectieaanvallen. In het kort moeten gegevens in query's SQL-escaped zijn voordat de query wordt uitgevoerd om injectie-aanvallen te voorkomen. Dit kan eenvoudig worden gedaan met de bereidingsmethode. In het volgende voorbeeld zullen de waarden '10', 'aap' en 'apple' worden geëscaped wanneer ze in deze methode worden gebruikt.
// Gebruik: $ wpdb-> prepare ('query' [, value_parameter, value_parameter ...]); $ wpdb-> query ($ wpdb-> prepare ("INSERT INTO test_table (post_id, animal, food) VALUES (% d,% s,% s)", array (10, 'monkey', 'apple'))) ;
U kunt foutmeldingen in- en uitschakelen met de show_errors
en hide_errors
functies, maar u kunt ook afdrukken:
$ Wpdb-> show_errors (); $ Wpdb-> hide_errors ();
Het verwijderen van de cache kan worden gedaan met de doorspoelen
functie.
$ Wpdb-> flush ();
$ wpdb-> insert ($ table, $ data, $ format); $ wpdb-> insert ('foods', array ('fruit' => 'apple', 'year' => 2012), array ('% s', '% d'));
De gebruikte parameters zijn:
$ data
. Als ze niet aanwezig zijn, worden alle waarden als strings behandeld$ wpdb-> update ('foods', array ('fruit' => 'apple', // string 'year' => 'value2' // integer (getal)), array ('ID' => 1), array ('% s', // waarde1 '% d' // waarde2), array ('% d'));
De gebruikte parameters zijn:
U kunt informatie krijgen over de kolommen van het meest recente resultaat met deze functie. Wanneer een functie is geretourneerd VOORWERP
en er zijn eigenschappen waar je niet veel over weet, dit kan handig zijn.
$ wpdb-> get_col_info ('type', offset);
naam
- kolomnaam (dit is de standaardnaam)tafel
- naam van de tabel waartoe de kolom behoortmaximale lengte
- maximale lengte van de kolomniet nul
- 1 als de kolom niet NULL kan zijnVan WordPress-databasetabellen kan worden verwezen in de wpdb
klasse. Dit is erg handig omdat tabelnamen anders kunnen zijn dan de standaardnamen. Hier is een lijst met WordPress-databasetabelverwijzingen:
$ Wpdb-> posten;
$ Wpdb-> postmeta;
$ Wpdb-> opmerkingen;
$ Wpdb-> commentmeta;
$ Wpdb-> termen;
$ Wpdb-> term_taxonomy;
$ Wpdb-> term_relationships;
$ Wpdb-> gebruikers;
$ Wpdb-> usermeta;
$ Wpdb-> banden;
$ Wpdb-> opties;
Merk op dat we het voorvoegsel niet hoeven toe te voegen, dat is het voordeel hier waar het wpdb
klas zorgt daar voor ons voor.
Daar hebben we het! Een referentie voor aangepaste query's in WordPress, alles op één plek voor u.