Språk: engelsk • Italiano • 日本語 Русский • 中文(简体) • 中文(繁) • 한국어 • (Legg til ditt språk)
Snakker til Databasen: wpdb Klasse
WordPress som definerer en klasse kalt wpdb, og som inneholder et sett av funksjoner som brukes til å samhandle med en database. Hovedformålet er å gi et grensesnitt Med WordPress-databasen, men kan brukes til å kommunisere med enhver annen passende database. Klassen kildekoden er løst basert på ezSQL klasse; skrevet Og vedlikeholdt Av Justin Vincent
Ved hjelp av $wpdb-Objektet
Advarsel: Metoder i wpdb()
– klassen bør ikke kalles direkte. Bruk det globale $wpdb
– objektet i stedet!
WordPress gir en global objektvariabel, $wpdb
, som er en instantiering av wpdb-klassen definert i / wp-includes / wp-db.php. Som standard er $wpdb
instantiert for å snakke Med WordPress-databasen. For å få tilgang til $wpdb
i WordPress PHP-koden, deklarere $wpdb
som en global variabel ved hjelp av global keyword
, eller bruk superglobal $GLOBALS
på følgende måte:
// 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 er ikke begrenset til standardtabellene som er opprettet Av WordPress; Det kan brukes til å lese data fra et hvilket som helst bord I WordPress-databasen (for eksempel tilpassede plugin-tabeller). FOR eksempel Å VELGE litt informasjon fra en egendefinert tabell kalt «mytable», kan du gjøre følgende.
$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );
$wpdb
– objektet kan snakke med et hvilket som helst antall tabeller, men bare til en database om gangen; Som Standard WordPress-databasen. I sjeldne tilfeller må du koble til en annen database, må du instantiere ditt eget objekt fra klassen wpdb
med din egen databaseforbindelsesinformasjon. For ekstremt kompliserte oppsett med mange databaser, bør du vurdere å bruke hyperdb i stedet.
En Advarsel
Noen av funksjonene i denne klassen tar EN SQL-setning som inndata. DU MÅ SQL unnslippe alle uklarerte verdier du innlemme I SQL-spørringen for å hindre SQL-injeksjon angrep. Sjekk dokumentasjonen for å se om funksjonen du planlegger å bruke escapes SQL FOR deg eller forventer at den skal være pre-rømt.
for mer OM SQL escaping I WordPress, se Avsnittet Protect Queries Against SQL Injection Attacks nedenfor.
VELG En Variabel
funksjonen get_var
returnerer en enkelt variabel fra databasen. Selv om bare en variabel returneres, bufres hele resultatet av spørringen for senere bruk. Returnerer NULL hvis ingen resultat er funnet.
<?php $wpdb->get_var( 'query', column_offset, row_offset ); ?>
spørring (streng) spørringen du ønsker å kjøre. Hvis du angir denne parameteren tilnull
, returneres den angitte variabelen fra de bufrede resultatene fra forrige spørring. column_offset (heltall) ønsket kolonne (0 er den første). Standard til 0. row_offset (heltall) ønsket rad (0 er den første). Standard til 0.
Eksempler
Hent og vis antall brukere.
<?php$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );echo "<p>User count is {$user_count}</p>";?>
Hent og vis summen av En Egendefinert Feltverdi.
<?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>";?>
VELG En Rad
bruk get_row
for å hente en hel rad fra en spørring. Funksjonen kan returnere raden som et objekt, en assosiativ matrise eller som en numerisk indeksert matrise. Hvis flere enn en rad returneres av spørringen, returneres bare den angitte raden av funksjonen, men alle rader bufres for senere bruk. Returnerer NULL hvis det ikke finnes noe resultat, bør du vurdere dette når du bruker den returnerte verdien i argumenter, se eksempel nedenfor.
<?php $wpdb->get_row('query', output_type, row_offset); ?>
spørring (streng) spørringen du ønsker å kjøre. output_type En av tre forhåndsdefinerte konstanter. Standard TIL OBJEKT.
- OBJEKT-resultatet vil bli sendt ut som et objekt.
- ARRAY_A-resultatet vil bli sendt ut som en assosiativ matrise.
- ARRAY_N – resultatet vil bli sendt ut som en numerisk indeksert matrise.
row_offset (heltall) ønsket rad (0 er den første). Standard til 0.
Eksempler
Få all informasjon Om Link 10.
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" );
egenskapene til $mylink
– objektet er kolonnenavnene på resultatet FRA SQL-spørringen (i dette eksemplet kan alle kolonnene fra $wpdb->links
– tabellen, men du kan også spørre etter bare bestemte kolonner).
echo $mylink->link_id; // prints "10"
i kontrast vil bruk av
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A );
resultere i en assosiativ matrise:
echo $mylink; // prints "10"
og
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N );
ville resultere i en numerisk indeksert matrise:
echo $mylink; // prints "10"
hvis DET ikke er noen post MED ID 10 i links-tabellen, vil null
bli returnert. Følgende ville da være falsk:
if ( null !== $mylink ) { // do something with the link return true;} else { // no link found return false;}
VELG En Kolonne
bruk get_col
for å VELGE en kolonne. Denne funksjonen utgir et endimensjonalt array. Hvis mer enn en kolonne returneres av spørringen, returneres bare den angitte kolonnen av funksjonen, men hele resultatet bufres for senere bruk. Returnerer en tom matrise hvis ingen resultat er funnet.
<?php $wpdb->get_col( 'query', column_offset ); ?>
spørring (streng) spørringen du ønsker å utføre. Hvis du angir denne parameteren tilnull
, returneres den angitte kolonnen fra de bufrede resultatene fra forrige spørring. column_offset (heltall) ønsket kolonne (0 er den første). Standard til 0.
Eksempler
for dette eksemplet antar bloggen er viet til informasjon om biler. 1969 Ford Mustang), og tre Tilpassede Felt, produsent, modell og år, er tildelt hvert innlegg. Dette eksemplet viser innleggstitlene, filtrert av En bestemt produsent (Ford), og sortert etter modell og år.
get_col-skjemaet for Wpdb-Klassen brukes til å returnere en matrise med alle post-id-ene som oppfyller kriteriene, og sorteres i riktig rekkefølge. Deretter brukes en foreach-konstruksjon til å iterere gjennom den rekke post-ider, og viser tittelen på hvert innlegg. Merk AT SQL for dette eksemplet ble opprettet 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} }?>
dette eksemplet viser alle innlegg som inneholder et bestemt egendefinert felt, men sortert etter verdien av et annet egendefinert felt.
<?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}}?>
VELG Generiske Resultater
Generisk, flere radresultater kan trekkes fra databasen med get_results
. Funksjonen returnerer hele spørringsresultatet som en matrise. Hvert element i denne matrisen tilsvarer en rad av spørringsresultatet, og kan, som get_row
, være et objekt, en assosiativ matrise eller en nummerert matrise. Hvis det ikke finnes samsvarende rader, eller hvis det er en databasefeil, vil returverdien være en tom matrise. HVIS $query-strengen er tom, eller du sender en ugyldig $output_type, RETURNERES NULL.
<?php $wpdb->get_results( 'query', output_type ); ?>
spørring (streng) spørringen du ønsker å kjøre. output_type En av fire forhåndsdefinerte konstanter. Standard TIL OBJEKT. Se VELGE En Rad og dens eksempler for mer informasjon.
- OBJEKT-resultatet vil bli sendt ut som en numerisk indeksert rekke radobjekter.
- OBJECT_K-resultatet vil bli sendt ut som en assosiativ rekke radobjekter, ved hjelp av første kolonnens verdier som nøkler (duplikater vil bli forkastet).
- ARRAY_A – resultatet vil bli sendt ut som en numerisk indeksert matrise av assosiative matriser, ved hjelp av kolonnenavn som nøkler.
- ARRAY_N – resultatet vil bli sendt ut som en numerisk indeksert matrise av numerisk indekserte matriser.
siden denne funksjonen bruker $ wpdb->query () – funksjonen, er alle klassevariablene riktig angitt. Resultatene teller for EN ‘VELG’ spørring vil bli lagret i $wpdb- > num_rows.
Eksempler
Få Id-ene Og Titlene til Alle Utkastene Av Bruker 5 og ekko Titlene.
$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 informasjon Om Kladdene Av Brukeren 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}?>
SETT inn rad
Sett inn en rad i en tabell.
<?php $wpdb->insert( $table, $data, $format ); ?>
tabell (streng) navnet på tabellen du vil sette inn data i. data (matrise) Data som skal settes inn(i kolonne => verdipar). Både $data kolonner og $data verdier bør være «rå» (verken BØR VÆRE SQL rømt). format (array / string|(valgfritt) en rekke formater som skal tilordnes til hver av verdiene i $data. Hvis streng, vil dette formatet bli brukt for alle verdiene i $data. Hvis utelatt, vil alle verdier i $data bli behandlet som strenger med mindre annet er angitt i wpdb::$field_types.
mulige formatverdier: %s som streng; %d som heltall( hele tall); og %f som flyt. (Se nedenfor for mer informasjon.)
ETTER innsatsen kan ID-en som genereres FOR AUTO_INCREMENT-kolonnen, nås med:
$wpdb->insert_id
denne funksjonen returnerer false hvis raden ikke kunne settes inn. Ellers returnerer det antall berørte rader (som alltid vil være 1).
Merk: verdidelen av dataparameterens kolonne=>verdipar må være skalar. Hvis du sender en matrise (eller objekt) som en verdi som skal settes inn, vil du generere en advarsel som ligner på » mysql_real_escape_string () forventer at parameter 1 skal være streng, array gitt på linje 880 i fil / var / www / html/wp-includes / wp-db.php».
Eksempler
Sett inn to kolonner på rad, den første verdien er en streng og den andre et tall:
$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );
ERSTATT rad
Erstatt en rad i en tabell hvis den finnes, eller sett inn en ny rad i en tabell hvis raden ikke allerede finnes.
<?php $wpdb->replace( $table, $data, $format ); ?>
tabell (streng) navnet på tabellen som skal erstatte data i. data (matrise) Data som skal erstattes(i kolonne => verdipar). Både $data kolonner og $data verdier bør være «rå» (verken BØR VÆRE SQL rømt). format (array / string|(valgfritt) en rekke formater som skal tilordnes til hver av verdien i $data. Hvis streng, vil dette formatet bli brukt for alle verdiene i $data. Hvis utelatt, vil alle verdier i $data bli behandlet som strenger med mindre annet er angitt i wpdb::$field_types.
mulige formatverdier: %s som streng; %d som heltall( hele tall); og %f som flyt. (Se nedenfor for mer informasjon.)
hvis lengden på et strengelement i $ data array-parameteren er lengre enn den definerte lengden i MySql-databasetabellen, vil innsatsen mislykkes, denne funksjonen vil returnere false, men $wpdb – >last_error vil ikke bli satt til en beskrivende melding. Du må sørge for at dataene du ønsker å sette inn, passer inn i databasen – ikke anta At MySql vil avkorte dataene.
etter erstatt kan ID-en som genereres FOR KOLONNEN AUTO_INCREMENT, nås med:
$wpdb->insert_id
denne funksjonen returnerer en telling for å angi antall berørte rader. Dette er summen av radene slettet og satt inn. Hvis tellingen er 1 FOR EN enkelt rad ERSTATNING, ble en rad satt inn og ingen rader ble slettet. Hvis antallet er større enn 1, ble en eller flere gamle rader slettet før den nye raden ble satt inn. Det er mulig for en enkelt rad å erstatte mer enn en gammel rad hvis tabellen inneholder flere unike indekser og den nye raden dupliserer verdier for forskjellige gamle rader i forskjellige unike indekser.
denne funksjonen returnerer false hvis en eksisterende rad ikke kan erstattes og en ny rad ikke kan settes inn.
Eksempler
Erstatt en rad, den første verdien er rad-id, den andre en streng og den tredje et tall:
$wpdb->replace( 'table', array( 'indexed_id' => 1,'column1' => 'value1', 'column2' => 123 ), array( '%d','%s', '%d' ) );
OPPDATER rader
Oppdater en rad i tabellen. Returnerer false hvis feil, eller antall rader som berøres hvis vellykket.
<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>
tabell (streng) navnet på tabellen som skal oppdateres. data (matrise) Data som skal oppdateres(i kolonne => verdipar). Både $data kolonner og $data verdier bør være «rå» (verken BØR VÆRE SQL rømt). Dette betyr at HVIS du bruker HENT-eller POSTDATA, må du kanskje bruke stripslashes () for å unngå at skråstreker ender opp i databasen. hvor (matrise) en navngitt matrise AV HVOR klausuler(i kolonne => verdipar). Flere klausuler vil bli slått Sammen Med ANDs. Både $hvor kolonner og $hvor verdier skal være «rå». format (array / string|(valgfritt) en rekke formater som skal tilordnes til hver av verdiene i $data. Hvis streng, vil dette formatet bli brukt for alle verdiene i $data. where_format (array / string) (valgfritt) en rekke formater som skal tilordnes til hver av verdiene i $hvor. Hvis streng, vil dette formatet bli brukt for alle elementene i $hvor.
mulige formatverdier: %s som streng; %d som heltall (hele tall) og %f som flyt. (Se nedenfor for mer informasjon.) Hvis utelatt, vil alle verdier i $where bli behandlet som strenger.
Returverdier: Denne funksjonen returnerer antall rader som er oppdatert, eller false hvis det oppstår en feil. Husk at hvis $data samsvarer med det som allerede er i databasen, vil ingen rader bli oppdatert, så 0 vil bli returnert. På grunn av dette bør du nok sjekke avkastningen med false = = = $ result
Eksempler
Oppdater en rad, HVOR ID er 1, verdien i den første kolonnen er en streng og verdien i den andre kolonnen er et tall:
$wpdb->update( 'table', array( 'column1' => 'value1',// string'column2' => 'value2'// integer (number) ), array( 'ID' => 1 ), array( '%s',// value1'%d'// value2), array( '%d' ) );
Obs: %d
kan ikke håndtere kommaverdier – hvis du ikke bruker fulle tall, bruk streng / %s.
SLETT Rader
slettefunksjonen ble lagt Til I WordPress 3.4.0, og kan brukes til å slette rader fra et bord. Bruken er svært lik oppdatere og sette inn. Den returnerer antall rader oppdatert, eller false ved feil.
Bruk
<?php $wpdb->delete( $table, $where, $where_format = null ); ?>
Parametere
$tabell (streng) (påkrevd) Tabellnavn. Standard: Ingen $hvor (array) (påkrevd) en navngitt rekke HVOR klausuler (i kolonne – > verdipar). Flere klausuler vil bli slått Sammen Med ANDs. Både $hvor kolonner og $hvor verdier skal være ‘rå’. Standard: Ingen $where_format (string / array) (valgfritt) en rekke formater som skal tilordnes hver av verdiene i $where. Hvis en streng, vil dette formatet bli brukt for alle elementene i $ hvor. Et format er en av ‘%d’, ‘%f’, ‘ %s ‘(heltall, flyte, streng; se nedenfor for mer informasjon). Hvis utelatt, vil alle verdier i $where bli behandlet som strenger med mindre annet er angitt i wpdb::$field_types. Standard :null
Eksempler
// Default usage.$wpdb->delete( 'table', array( 'ID' => 1 ) );// Using where formatting.$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );
Kjører Generelle Spørringer
funksjonen query
lar deg utføre EN SQL-spørring på WordPress-databasen. Den brukes best når det er behov for spesifikke, tilpassede ELLER på annen måte komplekse SQL-spørringer. Hvis du vil ha mer grunnleggende spørringer, for eksempel velge informasjon fra en tabell, kan du se de andre funksjonene wpdb
ovenfor, for eksempel get_results, get_var, get_row or get_col
.
Generell Syntaks
<?php $wpdb->query('query'); ?>
spørring (streng) SQL-spørringen du ønsker å utføre.
denne funksjonen returnerer en heltallsverdi som angir antall rader som er berørt / valgt FOR SELECT, INSERT, DELETE, UPDATE, etc. FOR OPPRETT, ENDRE, AVKORT OG SLIPP SQL-setninger, (som påvirker hele tabeller i stedet for bestemte rader) returnerer denne funksjonen TRUE
på suksess. Hvis Det oppstår En MySQL-feil, returnerer funksjonen FALSE
. Merk at siden både 0 og FALSE
kan returneres for radspørringer, bør du være forsiktig når du sjekker returverdien. Bruk identity operator (===) for å se etter feil (f.eks false === $resultat), og om noen rader ble påvirket (f. eks 0 === $resultat).
Eksempler
Slett’ gurgle ‘ meta nøkkel og verdi Fra Post 13. (Vi legger til ‘forbered’ – metoden for å sikre at vi ikke har å gjøre med en ulovlig operasjon eller ulovlige tegn):
$wpdb->query( $wpdb->prepare( " DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", 13, 'gargle' ));
Utført i WordPress av delete_post_meta()
.
Sett overordnet side 15 Til side 7.
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %dWHERE ID = %dAND post_status = %s", 7, 15, 'static') );
Beskytt Spørringer Mot SQL-Injeksjonsangrep
for en mer fullstendig oversikt over SQL-escaping I WordPress, se Database Datavalidering. Det er en må-lese for Alle WordPress kode bidragsytere og plugin forfattere.
Alle data i SQL-spørringer må VÆRE SQL-rømt før SQL-spørringen utføres for å hindre MOT SQL-injeksjon angrep. Metoden prepare
utfører denne funksjonaliteten For WordPress, som støtter både en sprintf () – lignende og vsprintf()-lignende syntaks.
Merk: Som av 3.5, wpdb::forbered () håndhever minst 2 argumenter.
<?php $sql = $wpdb->prepare( 'query' , value_parameter ); ?>
spørring (streng) SQL-spørringen du ønsker å utføre, med plassholdere (se nedenfor). value_parameter (int|string / array) verdien som skal erstattes i plassholderen. Mange verdier kan sendes ved å bare passere flere argumenter på en sprintf () – lignende måte. Alternativt kan det andre argumentet være en matrise som inneholder verdiene som I PHPS vsprintf () – funksjon. Det må tas hensyn til ikke å tillate direkte brukerinngang til denne parameteren, noe som vil muliggjøre arraymanipulering av spørringer med flere plassholdere. Verdier KAN IKKE VÆRE SQL-rømt.
Plassholdere
spørringsparameteren for prepare godtar sprintf () – lignende plassholdere. Formatene %s (streng), %d (heltall) og % f (float) støttes. (Plassholderne %s og % d har vært tilgjengelige siden funksjonen ble lagt til core I Versjon 2.3, %f har bare vært tilgjengelig Siden Versjon 3.3.) Eventuelle andre %
tegn kan forårsake analysefeil med mindre de er rømt. Alle %
– tegn i SQL-strenglitteraler, inkludert som jokertegn, må være dobbelt % rømt som %%
. Alle %d, % f og %s skal stå unotert i spørringsstrengen. Legg merke til at plassholderen %d bare godtar heltall, slik at du ikke kan sende tall som har kommaverdier via %d. hvis du trenger kommaverdier, bruker du %f som flyt i stedet.
Eksempler
Legg Til Meta key = > verdipar «Harriet’ S Adages» => «WordPress’ databasegrensesnitt er som søndag Morgen: Enkelt.»Til Innlegg 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ørt I WordPress av add_meta()
.
Samme spørring ved hjelp av vsprintf () – lignende syntaks.
$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) ) );
Merk at i dette eksemplet pakker vi verdiene sammen i en matrise. Dette kan være nyttig når vi ikke vet antall argumenter vi må passere til kjøretid.
Legg Merke til at du ikke trenger å bekymre deg for å sitere strenger. I stedet for å sende variablene direkte inn I SQL-spørringen, kan du bruke en plassholder for strenger %s
, en plassholder for heltall %d
og en %f som plassholder for flyter. Du kan sende så mange verdier som du vil, hver som en ny parameter i prepare()
– metoden.
Vis OG Skjul SQL-Feil
du kan slå ekko-feil på og av med henholdsvis show_errors
og hide_errors
.
<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>
du kan også skrive ut feilen (hvis noen) generert av den siste spørringen med print_error
.
<?php $wpdb->print_error(); ?>
Merk: hvis Du kjører WordPress Multisite, må du definere DIEONDBERROR-konstanten for databasefeil som skal vises slik: <?php define( 'DIEONDBERROR', true ); ?>
Hente Kolonneinformasjon
du kan hente informasjon om kolonnene i det siste spørringsresultatet med get_col_info
. Dette kan være nyttig når en funksjon har returnert ET OBJEKT hvis egenskaper du ikke vet. Funksjonen vil sende ut ønsket informasjon fra den angitte kolonnen, eller en matrise med informasjon om alle kolonner fra spørringsresultatet hvis ingen kolonne er angitt.
<?php $wpdb->get_col_info('type', offset); ?>
skriv (streng) hvilken informasjon du vil hente. Kan ta på noen av følgende verdier (liste hentet fra ezSQL docs). Standard til navn.
- navn – kolonnenavn. Standard.
- tabell – navn på tabellen kolonnen tilhører
- max_length – maksimal lengde på kolonnen
- not_null – 1 hvis kolonnen ikke KAN VÆRE NULL
- primary_key – 1 hvis kolonnen er en primærnøkkel
- unique_key – 1 hvis kolonnen er en unik nøkkel
- multiple_key – 1 hvis kolonnen er en ikke-unik nøkkel
- numerisk – 1 hvis kolonnen er numerisk
- blob – 1 hvis kolonnen er en blob
- type – kolonnetypen
- usignert – 1 hvis kolonnen er usignert
- zerofill – 1 hvis kolonnen er null-fylt
offset (heltall) Angi kolonnen du vil hente informasjon fra (med 0 som den første kolonnen). Standard til -1.
- -1-Hent informasjon fra alle kolonner. Utgang som array. Standard.
- Ikke-negativt heltall-Hent informasjon fra angitt kolonne (0 er den første).
Tømme Bufferen
DU kan tømme bufferen FOR SQL-resultat med flush
.
<?php $wpdb->flush(); ?>
dette fjerner $wpdb->last_result
, $wpdb->last_query
og $wpdb->col_info
.
Klassevariabler
$show_errors Hvorvidt Feil ekko er slått på. Standard TIL SANN. $num_queries antall spørringer som er utført. $last_query den siste spørringen som har blitt utført. $last_error den nyeste feilteksten generert Av MySQL. $spørringer Du kan lagre alle spørringene kjøre på databasen og deres stopp ganger ved å sette savequeries konstant TIL TRUE (dette konstant standard TIL FALSE). HVIS SAVEQUERIES ER SANT, blir spørringene dine lagret i denne variabelen som en matrise. $last_result De siste spørringsresultatene. $col_info kolonneinformasjonen for de nyeste spørringsresultatene. Se Hente Kolonneinformasjon. $insert_id ID generert FOR EN AUTO_INCREMENT-kolonne ved den nyeste INSERT-spørringen. $num_rows antall rader returnert av den siste spørringen. $prefiks det tildelte WordPress – tabellprefikset for nettstedet. $base_prefix Det opprinnelige prefikset som definert i wp-config.php. For multi-site: Bruk Hvis du vil få prefikset uten at bloggnummeret er vedlagt.
Variabler For Flere Områder
hvis Du bruker Flere Områder, har du også tilgang til følgende:
$blogid iden for gjeldende område (blogg). $ siteid iden til det gjeldende nettverket(tidligere «nettsted»). WordPress støtter for tiden bare ett nettverk per installasjon på flere steder, men det kan endres i fremtiden. Se følgende for mer informasjon:
- WordPress: forskjell mellom site_id og blog_id?
- http://stackoverflow.com/a/4189358/1924128 – Et annet godt svar på det samme spørsmålet.
Tabeller
WordPress-databasetabellene er lett referert i klassen wpdb
.
$legger inn Tabellen Over Innlegg. $postmeta Meta Innhold (aka Egendefinerte Felt) tabellen. $kommentarer Kommentarer tabellen. $commentmeta tabellen inneholder ytterligere kommentar informasjon. $termmeta termmeta-tabellen inneholder termen metaverdier. $vilkår tabellen vilkår inneholder ‘beskrivelse’ Av Kategorier, Link Kategorier, Koder. $term_taxonomy term_taxonomy-tabellen beskriver de ulike taksonomiene (klasser av vilkår). Kategorier, Link Kategorier og Koder er taksonomier. $term_relationships term relations-tabellen inneholder kobling mellom termen og objektet som bruker termen, noe som betyr at denne filen peker til Hver Kategori som brukes for Hvert Innlegg. $ brukere Tabellen Over Brukere. usermeta usermeta-tabellen inneholder ytterligere brukerinformasjon, for eksempel kallenavn, beskrivelser og tillatelser. $lenker tabellen Over Lenker. $alternativer Alternativer tabellen.
Multisite Tabeller
disse tabellene brukes bare i multisite installasjoner.
$ blogger Blogstabellen inneholder en liste over de separate bloggene (nettstedene) som er satt opp i nettverket(e). $registreringer Registreringer tabellen. $ site Områdetabellen inneholder en liste over nettverkene (tidligere kjent som «nettsteder» I WPMU) som er satt opp i installasjonen (vanligvis er det bare ett område oppført i denne tabellen). tabellen Nettverksalternativer (Site Meta) inneholder alternativer som gjelder for hele multisite-installasjonen. $sitecategories Tabellen For Nettstedskategorier. $registration_log Tabellen Registrering Logg. $blog_versions Bloggen Versjoner tabellen.
Kildefil
wpdb () ligger i wp-includes/wp-db.php
.
Relatert
- Medlem Funksjon: wpdb:: esc_like () – Escape SOM setninger før bruk I SQL.
Artikler
- Artikkel: The Loop-en grunnleggende oversikt over bruken av spørring i WordPress loop.
- Artikkel: Spørringsoversikt-Forklaring på hvordan du bestemmer hvilke spørringer som genererer WordPress.
- Artikkel: Tilpasse Spørringer Via Krok
- Artikkel: Vis Artikler MYSQL – spørring ved hjelp av egendefinert
- Artikkel: Bygg avanserte spørringer På Taksonomier
- Artikkel: Bygg tilpasset spørring ved Hjelp Av Offset og paginering
Kodedokumentasjon
- Klasse: WP_Query – detaljert oversikt over klasse wp_query
- Klasse: Wp_comment_query-Klasse for kommentar – relaterte spørsmål
- Klasse: wp_user_query-Klasse For Brukerrelaterte Spørsmål
- objekt: $wpdb-Oversikt over bruken av $wpdb – objektet
- Funksjon: set_query_var()
- Funksjon: get_query_var()
- Funksjon: query_posts () – Opprett ekstra tilpasset spørring
- Funksjon: get_post () – Ta EN id for et element og returner postene i databasen for den artikkelen
- funksjon: get_posts () – en spesialisert funksjon som returnerer en rekke elementer
- funksjon: get_pages () – En Spesialisert funksjon som returnerer en rekke sider
- funksjon: have_posts() – en betingelse som bestemmer om spørringen returnerte en artikkel
- Funksjon: the_post() – Brukes til å angi sløyfen automatisk etter en spørring
- Funksjon: rewind_posts() – Fjerner gjeldende sløyfe
- Funksjon: setup_postdata() – Angir dataene for et enkelt spørringsresultat i en sløyfe
- Funksjon: wp_reset_postdata () – gjenoppretter forrige spørring (vanligvis etter en sløyfe i en annen sløyfe)
- funksjon: wp_reset_query ()
- funksjon: is_main_query () – Sikrer at spørringen som blir endret, er bare hovedspørringen
- Handlingskrok: pre_get_posts – Endre WordPress – spørringer før de utføres
- Handlingskrok: The_post-Endre postobjektet etter spørring
- Filterkrok: found_posts-Endrer verdien av objektet found_posts WP_Query