Språk: engelska • Italiano • 日本語 Русский • 中文(简体) • 中文(繁體) • 한국어 • (Lägg till ditt språk)
Talar till Databasen: wpdb Klass
WordPress definierar en klass som kallas för wpdb, som innehåller en uppsättning funktioner som används för att interagera med en databas. Dess främsta syfte är att tillhandahålla ett gränssnitt med WordPress-databasen, men kan användas för att kommunicera med någon annan lämplig databas. Klassens källkod är löst baserad på ezsql-klassen; skriven och underhållen av Justin Vincent
med $wpdb-objektet
Varning: metoder i klassen wpdb()
ska inte anropas direkt. Använd det globala $wpdb
– objektet istället!
WordPress tillhandahåller en global objektvariabel, $wpdb
, som är en instans av wpdb-klassen definierad i /wp-includes/wp-db.php. Som standard är $wpdb
instansierad för att prata med WordPress-databasen. För att komma åt $wpdb
i din WordPress PHP-kod, deklarera $wpdb
som en global variabel med global keyword
, eller använd superglobal $GLOBALS
på följande sätt:
// 1st Method - Declaring $wpdb as global and using it to execute an SQL query statement that returns a PHP objectglobal $wpdb;$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );// 2nd Method - Utilizing the $GLOBALS superglobal. Does not require global keyword ( but may not be best practice )$results = $GLOBALS->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );
$wpdb
– objektet är inte begränsat till standardtabellerna som skapats av WordPress; det kan användas för att läsa data från vilken tabell som helst i WordPress-databasen (till exempel anpassade plugin-tabeller). Om du till exempel vill välja information från en anpassad tabell som heter ”mytable” kan du göra följande.
$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );
objektet $wpdb
kan prata med valfritt antal tabeller, men bara till en databas i taget; som standard WordPress-databasen. I det sällsynta fallet måste du ansluta till en annan databas, Du måste instansiera ditt eget objekt från klassen wpdb
med din egen databasanslutningsinformation. För extremt komplicerade inställningar med många databaser, överväg att använda hyperdb istället.
en varning
några av funktionerna i den här klassen tar ett SQL-uttryck som inmatning. Du måste SQL undkomma alla otillförlitliga värden som du införlivar i SQL-frågan för att förhindra SQL-injektionsattacker. Kontrollera dokumentationen för att se om funktionen du planerar att använda rymmer SQL åt dig eller förväntar dig att den ska vara förrymd.
för mer information om SQL-flykt i WordPress, se avsnittet skydda frågor mot SQL-injektionsattacker nedan.
välj en variabel
funktionen get_var
returnerar en enda variabel från databasen. Även om endast en variabel returneras, cachas hela resultatet av frågan för senare användning. Returnerar NULL om inget resultat hittas.
<?php $wpdb->get_var( 'query', column_offset, row_offset ); ?>
fråga (sträng) frågan du vill köra. Om du ställer in denna parameter tillnull
returneras den angivna variabeln från de cachade resultaten från föregående fråga. column_offset (heltal) den önskade kolumnen (0 är den första). Standardvärdet är 0. row_offset (heltal) den önskade raden (0 är den första). Standardvärdet är 0.
exempel
hämta och visa antalet användare.
<?php$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );echo "<p>User count is {$user_count}</p>";?>
hämta och visa summan av ett anpassat fältvärde.
<?php// set the meta_key to the appropriate custom field meta key$meta_key = 'miles';$allmiles = $wpdb->get_var( $wpdb->prepare( "SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key) );echo "<p>Total miles is {$allmiles}</p>";?>
välj en rad
för att hämta en hel rad från en fråga, använd get_row
. Funktionen kan returnera raden som ett objekt, en associativ array eller som en numeriskt indexerad array. Om mer än en rad returneras av frågan returneras endast den angivna raden av funktionen, men alla rader cachas för senare användning. Returnerar NULL om inget resultat hittas, tänk på detta när du använder det returnerade värdet i argument, se exempel nedan.
<?php $wpdb->get_row('query', output_type, row_offset); ?>
fråga (sträng) frågan du vill köra. output_type en av tre fördefinierade konstanter. Standard för objekt.
- OBJECT-resultat kommer att matas ut som ett objekt.
- ARRAY_A-resultatet kommer att matas ut som en associativ array.
- ARRAY_N-resultatet kommer att matas ut som en numeriskt indexerad array.
row_offset (heltal) den önskade raden (0 är den första). Standardvärdet är 0.
exempel
få all information om länk 10.
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" );
egenskaperna för objektet $mylink
är kolumnnamnen på resultatet från SQL-frågan (i det här exemplet alla kolumner från tabellen $wpdb->links
, men du kan också fråga endast för specifika kolumner).
echo $mylink->link_id; // prints "10"
däremot skulle användning av
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A );
resultera i en associativ array:
echo $mylink; // prints "10"
och
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N );
skulle resultera i en numeriskt indexerad array:
echo $mylink; // prints "10"
om det inte finns någon post med ID 10 i länktabellen returneras null
. Följande skulle då vara falskt:
if ( null !== $mylink ) { // do something with the link return true;} else { // no link found return false;}
välj en kolumn
för att välja en kolumn, använd get_col
. Denna funktion matar ut en endimensionell array. Om mer än en kolumn returneras av frågan returneras endast den angivna kolumnen av funktionen, men hela resultatet cachas för senare användning. Returnerar en tom array om inget resultat hittas.
<?php $wpdb->get_col( 'query', column_offset ); ?>
fråga (sträng) frågan du vill utföra. Om du ställer in denna parameter tillnull
returneras den angivna kolumnen från de cachade resultaten från föregående fråga. column_offset (heltal) den önskade kolumnen (0 är den första). Standardvärdet är 0.
exempel
för detta exempel, antar bloggen ägnas åt information om bilar. 1969 Ford Mustang), och tre anpassade fält, tillverkare, modell och år, tilldelas varje inlägg. Detta exempel visar inläggstitlarna, filtrerade av en viss tillverkare (Ford) och sorterade efter modell och år.
get_col-formen av wpdb-klassen används för att returnera en array av alla post-ID som uppfyller kriterierna och sorteras i rätt ordning. Sedan används en foreach-konstruktion för att iterera genom den arrayen av post-ID, som visar titeln på varje inlägg. Observera att SQL för detta exempel skapades av Andomar.
<?php $meta_key1= 'model';$meta_key2= 'year';$meta_key3= 'manufacturer';$meta_key3_value= 'Ford';$postids=$wpdb->get_col( $wpdb->prepare( "SELECT key3.post_idFROM $wpdb->postmeta key3INNER JOIN $wpdb->postmeta key1 ON key1.post_id = key3.post_id AND key1.meta_key = %s INNER JOIN $wpdb->postmeta key2 ON key2.post_id = key3.post_id AND key2.meta_key = %sWHERE key3.meta_key = %s AND key3.meta_value = %sORDER BY key1.meta_value, key2.meta_value",$meta_key1, $meta_key2, $meta_key3, $meta_key3_value) ); if ( $postids ) {echo "List of {$meta_key3_value}(s), sorted by {$meta_key1}, {$meta_key2}";foreach ( $postids as $id ) { $post = get_post( intval( $id ) );setup_postdata( $post );?><p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p><?php} }?>
i det här exemplet visas alla inlägg som innehåller ett visst anpassat fält, men sorterade efter värdet för ett andra anpassat fält.
<?php// List all posts with custom field Color, sorted by the value of custom field Display_Order// does not exclude any 'post_type'// assumes each post has just one custom field for Color, and one for Display_Order$meta_key1 = 'Color';$meta_key2 = 'Display_Order';$postids = $wpdb->get_col( $wpdb->prepare( "SELECT key1.post_idFROM $wpdb->postmeta key1INNER JOIN $wpdb->postmeta key2 ON key2.post_id = key1.post_id AND key2.meta_key = %sWHERE key1.meta_key = %sORDER BY key2.meta_value+(0) ASC", $meta_key2,$meta_key1) ); if ( $postids ) {echo "List of {$meta_key1} posts, sorted by {$meta_key2}";foreach ( $postids as $id ) {$post = get_post( intval( $id ) );setup_postdata( $post );?><p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p><?php}}?>
välj generiska resultat
generiska, flera radresultat kan dras från databasen med get_results
. Funktionen returnerar hela frågeresultatet som en matris. Varje element i denna array motsvarar en rad i frågeresultatet och kan, som get_row
, vara ett objekt, en associativ array eller en numrerad array. Om inga matchande rader hittas, eller om det finns ett databasfel, kommer returvärdet att vara en tom array. Om $ – frågesträngen är tom, eller om du skickar en ogiltig $output_type, returneras NULL.
<?php $wpdb->get_results( 'query', output_type ); ?>
fråga (sträng) frågan du vill köra. output_type en av fyra fördefinierade konstanter. Standard för objekt. Se Välj en rad och dess exempel för mer information.
- OBJEKTRESULTAT kommer att matas ut som en numeriskt indexerad rad av radobjekt.
- OBJECT_K – resultat kommer att matas ut som en associativ array av radobjekt, med hjälp av första kolumnens värden som nycklar (dubbletter kommer att kasseras).
- ARRAY_A-resultatet kommer att matas ut som en numeriskt indexerad array av associativa arrayer, med kolumnnamn som nycklar.
- ARRAY_N-resultat kommer att matas ut som en numeriskt indexerad array av numeriskt indexerade arrayer.
eftersom den här funktionen använder funktionen $ wpdb->query () är alla klassvariabler korrekt inställda. Resultaten räknas för en ’SELECT’ – fråga kommer att lagras i $ wpdb->num_rows.
exempel
hämta ID och titlar på alla utkast av användare 5 och echo titlarna.
$fivesdrafts = $wpdb->get_results( "SELECT ID, post_title FROM $wpdb->postsWHERE post_status = 'draft' AND post_author = 5");foreach ( $fivesdrafts as $fivesdraft ) {echo $fivesdraft->post_title;}
få all information om utkasten av användaren 5.
<?php$fivesdrafts = $wpdb->get_results( "SELECT * FROM $wpdb->postsWHERE post_status = 'draft' AND post_author = 5");if ( $fivesdrafts ){foreach ( $fivesdrafts as $post ){setup_postdata( $post );?><h2><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permalink: <?php the_title(); ?>"><?php the_title(); ?></a></h2><?php}}else{?><h2>Not Found</h2><?php}?>
Infoga rad
infoga en rad i en tabell.
<?php $wpdb->insert( $table, $data, $format ); ?>
tabell (sträng) namnet på tabellen för att infoga data i. data (array) Data för att infoga (i kolumn = > värdepar). Både $ data-kolumner och $data-värden ska vara ”raw” (inte heller bör SQL-flydde). format (array / string) (valfritt) en array med format som ska mappas till var och en av värdena i $data. Om sträng, kommer det formatet att användas för alla värden i $data. Om det utelämnas kommer alla värden i $data att behandlas som strängar om inte annat anges i wpdb::$field_types.
möjliga formatvärden: %s som sträng; % d som heltal( heltal); och %f som float. (Se nedan för mer information.)
efter insert kan det ID som genereras för kolumnen AUTO_INCREMENT nås med:
$wpdb->insert_id
denna funktion returnerar false om raden inte kunde infogas. Annars returnerar det antalet drabbade rader (vilket alltid kommer att vara 1).
Observera: värdedelen av dataparameterns kolumn=> värdepar måste vara skalär. Om du skickar en array (eller ett objekt) som ett värde som ska infogas kommer du att generera en varning som liknar ”mysql_real_escape_string () förväntar sig att parameter 1 ska vara sträng, array ges på rad 880 i file /var/www/html/wp-includes/wp-db.php”.
exempel
infoga två kolumner i rad, det första värdet är en sträng och det andra A-talet:
$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );
ersätt rad
Ersätt en rad i en tabell om den finns eller infoga en ny rad i en tabell om raden inte redan fanns.
<?php $wpdb->replace( $table, $data, $format ); ?>
tabell (sträng) namnet på tabellen för att ersätta data i. data (array) Data att ersätta (i kolumn => värdepar). Både $ data-kolumner och $data-värden ska vara ”raw” (inte heller bör SQL-flydde). format (array / string) (valfritt) en array av format som ska mappas till varje värde i $data. Om sträng, kommer det formatet att användas för alla värden i $data. Om det utelämnas kommer alla värden i $data att behandlas som strängar om inte annat anges i wpdb::$field_types.
möjliga formatvärden: %s som sträng; % d som heltal( heltal); och %f som float. (Se nedan för mer information.)
om längden på ett strängelement i parametern $data array är längre än den definierade längden i MySQL-databastabellen, kommer insatsen att misslyckas, den här funktionen returnerar false, men $wpdb – >last_error kommer inte att ställas in på ett beskrivande meddelande. Du måste se till att de data du vill infoga passar i databasen – antar inte att MySql kommer att trunkera data.
efter byte kan ID som genereras för kolumnen AUTO_INCREMENT nås med:
$wpdb->insert_id
denna funktion returnerar en räkning för att ange antalet berörda rader. Detta är summan av raderna raderade och infogade. Om räkningen är 1 för en enradsbyte infogades en rad och inga rader raderades. Om räkningen är större än 1 raderades en eller flera gamla rader innan den nya raden infogades. Det är möjligt för en enda rad att ersätta mer än en gammal rad om tabellen innehåller flera unika index och den nya raden duplicerar värden för olika gamla rader i olika unika index.
den här funktionen returnerar false om en befintlig rad inte kunde ersättas och en ny rad inte kunde infogas.
exempel
Ersätt en rad, det första värdet är rad-id, den andra en sträng och den tredje ett tal:
$wpdb->replace( 'table', array( 'indexed_id' => 1,'column1' => 'value1', 'column2' => 123 ), array( '%d','%s', '%d' ) );
uppdatera rader
uppdatera en rad i tabellen. Returnerar false if-fel, eller antalet rader som påverkas om det lyckas.
<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>
tabell (sträng) namnet på tabellen som ska uppdateras. data (array) data att uppdatera (i kolumn => värdepar). Både $ data-kolumner och $data-värden ska vara ”raw” (inte heller bör SQL-flydde). Detta innebär att om du använder GET-eller POST-data kan du behöva använda stripslashes() för att undvika snedstreck som hamnar i databasen. var (array) en namngiven array av where-satser (i kolumn => värdepar). Flera klausuler kommer att förenas med ANDs. Både $ where-kolumner och $where-värden ska vara ”raw”. format (array / string) (valfritt) en array med format som ska mappas till var och en av värdena i $data. Om sträng, kommer det formatet att användas för alla värden i $data. where_format (array / string) (valfritt) en array med format som ska mappas till var och en av värdena i $where. Om sträng, kommer det formatet att användas för alla objekt i $var.
möjliga formatvärden: %s som sträng; % d som heltal (heltal) och %f som float. (Se nedan för mer information.) Om utelämnas kommer alla värden i $where att behandlas som strängar.
returvärden: Denna funktion returnerar antalet uppdaterade rader, eller falskt om det finns ett fel. Tänk på att om $data matchar det som redan finns i databasen kommer inga rader att uppdateras, så 0 kommer att returneras. På grund av detta bör du noga kontrollera avkastningen med false = = = $ result
exempel
uppdatera en rad, där ID är 1, värdet i den första kolumnen är en sträng och värdet i den andra kolumnen är ett tal:
$wpdb->update( 'table', array( 'column1' => 'value1',// string'column2' => 'value2'// integer (number) ), array( 'ID' => 1 ), array( '%s',// value1'%d'// value2), array( '%d' ) );
Obs: %d
kan inte hantera kommavärden – om du inte använder hela siffror, Använd sträng / %s.
ta bort rader
delete-funktionen lades till i WordPress 3.4.0 och kan användas för att ta bort rader från en tabell. Användningen är mycket lik uppdatera och infoga. Den returnerar antalet uppdaterade rader eller falskt vid fel.
användning
<?php $wpdb->delete( $table, $where, $where_format = null ); ?>
parametrar
$tabell (sträng) (krävs) tabellnamn. Standard: Ingen $where (array) (krävs) en namngiven array av where-satser (i kolumn – > värdepar). Flera klausuler kommer att förenas med ANDs. Både $ where-kolumner och $where-värden ska vara ’raw’. Standard: None $where_format (string / array) (valfritt) en array med format som ska mappas till var och en av värdena i $where. Om en sträng kommer det formatet att användas för alla objekt i $where. Ett format är ett av ’%d’, ’%f’, ’%s ’ (heltal, float, string; se nedan för mer information). Om det utelämnas kommer alla värden i $where att behandlas som strängar om inte annat anges i wpdb::$field_types. Standard: null
exempel
// Default usage.$wpdb->delete( 'table', array( 'ID' => 1 ) );// Using where formatting.$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );
kör Allmänna frågor
funktionen query
låter dig köra alla SQL-frågor i WordPress-databasen. Det används bäst när det finns behov av specifika, anpassade eller på annat sätt komplexa SQL-frågor. För mer grundläggande frågor, till exempel att välja information från en tabell, Se de andra funktionerna wpdb
ovan, till exempel get_results, get_var, get_row or get_col
.
allmän Syntax
<?php $wpdb->query('query'); ?>
fråga (sträng) SQL-frågan du vill köra.
den här funktionen returnerar ett heltal som anger antalet rader som påverkas / valts för SELECT, INSERT, DELETE, UPDATE, etc. För skapa, ändra, avkorta och släpp SQL-satser (som påverkar hela tabeller istället för specifika rader) returnerar denna funktion TRUE
vid framgång. Om ett MySQL-fel uppstår kommer funktionen att returnera FALSE
. Observera att eftersom både 0 och FALSE
kan returneras för radfrågor, bör du vara försiktig när du kontrollerar returvärdet. Använd identitetsoperatören ( = = = ) för att kontrollera om det finns fel (t.ex. falskt === $resultat) och om några rader påverkades (t. ex. 0 === $resultat).
exempel
ta bort metanyckeln ’gargle’ och värdet från Post 13. (Vi lägger till’ Förbered ’ – metoden för att se till att vi inte har att göra med en olaglig operation eller några olagliga tecken):
$wpdb->query( $wpdb->prepare( " DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", 13, 'gargle' ));
utförs i WordPress av delete_post_meta()
.
Ställ in överordnad sida 15 till Sida 7.
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %dWHERE ID = %dAND post_status = %s", 7, 15, 'static') );
skydda frågor mot SQL-injektionsattacker
för en mer fullständig översikt över SQL-flykt i WordPress, se validering av databasdata. Det är ett måste för alla WordPress-kodbidragsgivare och plugin-författare.
Alla data i SQL-frågor måste vara SQL-rymda innan SQL-frågan körs för att förhindra mot SQL-injektionsattacker. Metoden prepare
utför denna funktion för WordPress, som stöder både en sprintf()-liknande och vsprintf()-liknande syntax.
observera: från och med 3.5, wpdb::Förbered () verkställer minst 2 argument.
<?php $sql = $wpdb->prepare( 'query' , value_parameter ); ?>
fråga (sträng) SQL-frågan du vill köra, med platshållare (se nedan). value_parameter (int|string / array) värdet att ersätta i platshållaren. Många värden kan överföras genom att helt enkelt skicka fler argument på ett sprintf()-liknande sätt. Alternativt kan det andra argumentet vara en array som innehåller värdena som i PHP: s vsprintf () – funktion. Försiktighet måste vidtas för att inte tillåta direkt användarinmatning till denna parameter, vilket skulle möjliggöra matrismanipulation av alla frågor med flera platshållare. Värden kan inte vara SQL-rymda.
platshållare
frågeparametern för prepare accepterar sprintf()-liknande platshållare. Formatet %s (string), %d (heltal) och %f (float) stöds. (Platshållarna %s och %d har varit tillgängliga sedan funktionen lades till core i Version 2.3, % f har bara varit tillgänglig sedan Version 3.3.) Alla andra %
– tecken kan orsaka tolkningsfel om de inte undviks. Alla %
– tecken i SQL-strängbokstäver, inklusive liknande jokertecken, måste vara dubbel – % flydde som %%
. Alla %d, %f och % s ska lämnas ociterade i frågesträngen. Observera att platshållaren % d bara accepterar heltal, så du kan inte skicka siffror som har kommavärden via %d. om du behöver kommavärden använder du %f som float istället.
exempel
Lägg till Meta key => värdepar ”Harriet’ s Adages” => ”WordPress’ databasgränssnitt är som söndag morgon: lätt.”att posta 10.
$metakey= "Harriet's Adages";$metavalue= "WordPress' database interface is like Sunday Morning: Easy.";$wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->postmeta( post_id, meta_key, meta_value )VALUES ( %d, %s, %s )", 10, $metakey, $metavalue ) );
utförs i WordPress av add_meta()
.
samma fråga med vsprintf () – liknande syntax.
$metakey = "Harriet's Adages";$metavalue = "WordPress' database interface is like Sunday Morning: Easy.";$wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->postmeta( post_id, meta_key, meta_value )VALUES ( %d, %s, %s )", array(10, $metakey, $metavalue) ) );
Observera att i det här exemplet packar vi värdena tillsammans i en array. Detta kan vara användbart när vi inte vet hur många argument vi behöver skicka fram till körning.
Lägg märke till att du inte behöver oroa dig för att citera strängar. Istället för att skicka variablerna direkt till SQL-frågan, använd en %s
platshållare för strängar, en %d
placedolder för heltal och en %f som platshållare för floats. Du kan skicka så många värden som du vill, var och en som en ny parameter i prepare()
– metoden.
Visa och Dölj SQL-fel
du kan slå på och stänga av felet med show_errors
respektive hide_errors
.
<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>
du kan också skriva ut felet (om något) som genereras av den senaste frågan med print_error
.
<?php $wpdb->print_error(); ?>
om du kör WordPress Multisite måste du definiera DIEONDBERROR-konstanten för att databasfel ska visas så: <?php define( 'DIEONDBERROR', true ); ?>
hämta Kolumninformation
du kan hämta information om kolumnerna i det senaste frågeresultatet med get_col_info
. Detta kan vara användbart när en funktion har returnerat ett objekt vars egenskaper du inte känner till. Funktionen matar ut önskad information från den angivna kolumnen eller en matris med information om alla kolumner från frågeresultatet om ingen kolumn anges.
<?php $wpdb->get_col_info('type', offset); ?>
skriv (sträng) vilken information du vill hämta. Kan ta på någon av följande värden (lista tas från ezSQL docs). Standard för namn.
- namn-kolumnnamn. Standard.
- tabell – namn på tabellen kolumnen tillhör
- max_length – maximal längd på kolumnen
- not_null – 1 om kolumnen inte kan vara NULL
- primary_key – 1 om kolumnen är en primärnyckel
- unique_key – 1 om kolumnen är en unik nyckel
- multiple_key – 1 om kolumnen är en icke-unik nyckel
- numerisk – 1 om kolumnen är numerisk
- Blob – 1 om kolumnen är en Blob
- typ – typen av kolumnen
- osignerad – 1 om kolumnen är osignerad
- zerofill – 1 om kolumnen är osignerad nollfylld
offset (heltal) ange kolumnen för att hämta information (med 0 som den första kolumnen). Standardvärdet är -1.
- -1-hämta information från alla kolumner. Utgång som array. Standard.
- icke-negativt heltal-hämta information från angiven kolumn (0 är den första).
rensa cachen
du kan rensa SQL-resultatcachen med flush
.
<?php $wpdb->flush(); ?>
detta rensar $wpdb->last_result
, $wpdb->last_query
och $wpdb->col_info
.
Klassvariabler
$show_errors huruvida fel echoing är aktiverat eller inte. Standardvärdet är sant. $num_queries antalet frågor som har utförts. $last_query den senaste frågan som har utförts. $last_error den senaste feltexten som genereras av MySQL. $ frågor du kan spara alla frågor som körs i databasen och deras stopptider genom att ställa in savequeries-konstanten till TRUE (den här konstanten är som standard falsk). Om SAVEQUERIES är sant kommer dina frågor att lagras i denna variabel som en array. $ last_result de senaste frågeresultaten. $ col_info kolumninformationen för de senaste frågeresultaten. Se Hämta Kolumninformation. $insert_id ID genereras för en AUTO_INCREMENT kolumn av den senaste infoga frågan. $num_rows antalet rader som returneras av den sista frågan. $ prefix det tilldelade WordPress – tabellprefixet för webbplatsen. $ base_prefix det ursprungliga prefixet enligt definitionen i wp-config.php. För multi-site: Använd om du vill få prefixet utan bloggnumret bifogat.
Multi-Site variabler
om du använder Multi-Site, har du också tillgång till följande:
$blogid id för den aktuella webbplatsen (blogg). $siteid id för det aktuella nätverket (tidigare ”site”). WordPress stöder för närvarande bara ett nätverk per installation på flera webbplatser, men det kan förändras i framtiden. Se följande för mer information:
- WordPress: skillnad mellan site_id och blog_id?
- http://stackoverflow.com/a/4189358/1924128 – ett annat bra svar på samma fråga.
tabeller
WordPress-databastabellerna refereras enkelt i klassen wpdb
.
$ lägger in tabellen över inlägg. $ postmeta Metainnehållet (aka anpassade fält) tabell. $kommentarer tabellen kommentarer. $ commentmeta tabellen innehåller ytterligare kommentarinformation. $ termmeta tabellen termmeta innehåller termen metavärden. $villkor tabellen villkor innehåller ’beskrivning’ av kategorier, Länkkategorier, taggar. $ term_taxonomy tabellen term_taxonomy beskriver de olika taxonomierna (klasser av termer). Kategorier, Länkkategorier och Taggar är taxonomier. $ term_relationships tabellen termrelationer innehåller länk mellan termen och objektet som använder termen, vilket betyder att den här filen pekar på varje kategori som används för varje inlägg. $användare tabellen över användare. $ usermeta tabellen usermeta innehåller ytterligare användarinformation, till exempel smeknamn, beskrivningar och behörigheter. $länkar tabellen med länkar. $ alternativ tabellen alternativ.
Multisite tabeller
dessa tabeller används endast i multisite installationer.
$bloggar tabellen bloggar innehåller en lista över de separata bloggar (webbplatser) som har ställts in i nätverket(n). $ registreringar Registreringstabellen. $ site Webbplatstabellen innehåller en lista över de nätverk (tidigare kända som ”webbplatser” i WPMU) som är inställda i installationen (vanligtvis finns det bara en webbplats som anges i den här tabellen). $ sitemeta tabellen nätverksalternativ (Site Meta) innehåller alla alternativ som är tillämpliga på hela multisite-installationen. $ sitecategories tabellen webbplatskategorier. $ registration_log Registreringsloggtabellen. $ blog_versions tabellen Bloggversioner.
källfilen
wpdb() finns i wp-includes/wp-db.php
.
relaterad
- medlemsfunktion: wpdb::esc_like() – Fly som uttalanden före användning i SQL.
artiklar
- Artikel: The Loop – en grundläggande översikt över dess användning av frågan i WordPress loop.
- artikel: Frågeöversikt-förklaring av hur man bestämmer vilka frågor som genererar WordPress.
- artikel: anpassa frågor via Krok
- artikel: Visa artiklar MYSQL – fråga med anpassad
- artikel: Bygg avancerade frågor på taxonomier
- artikel: Bygg Anpassad fråga med Offset och pagination
Koddokumentation
- klass: WP_Query – detaljerad översikt över klass WP_Query
- klass: Wp_comment_query-klass för kommentarsrelaterade frågor
- klass: wp_user_query – klass för användarrelaterade frågor
- objekt: $wpdb – översikt över användningen av $wpdb – objektet
- funktion: set_query_var()
- funktion: get_query_var()
- funktion: query_posts () – skapa ytterligare Anpassad fråga
- funktion: get_post () – ta ett ID för ett objekt och returnera posterna i databasen för den artikeln
- funktion: get_posts () – en specialiserad funktion som returnerar en rad objekt
- funktion: get_pages () – en specialiserad funktion som returnerar en rad sidor
- funktion: have_posts() – ett villkor som avgör om frågan returnerade en artikel
- funktion: the_post() – används för att automatiskt ställa in slingan efter en fråga
- funktion: rewind_posts() – rensar den aktuella slingan
- funktion: setup_postdata() – ställer in data för ett enda frågeresultat i en slinga
- funktion: wp_reset_postdata() – återställer föregående fråga (vanligtvis efter en slinga i en annan slinga)
- funktion: wp_reset_query()
- funktion: is_main_query () – säkerställer att frågan som ändras endast är huvudfrågan
- Action Hook: pre_get_posts – ändra WordPress – frågor innan de körs
- Action Hook: the_post-ändra postobjektet efter fråga
- Filterkrok: found_posts-ändrar värdet på objektet found_posts WP_Query