kielet: Englanti • Italiano • 日本 р Русский • 中文(简体) • 中文(繁體) • 한국어 • (Lisää kieli)
tietokantaan puhuminen: Wpdb-Luokka
WordPress määrittelee luokan nimeltä wpdb, joka sisältää joukon toimintoja, joita käytetään vuorovaikutuksessa tietokannan kanssa. Sen ensisijainen tarkoitus on tarjota käyttöliittymä WordPress tietokantaan, mutta sitä voidaan käyttää kommunikoida muiden asianmukaisten tietokantaan. Luokan lähdekoodi perustuu löyhästi ezsql-luokkaan; kirjoittanut ja ylläpitänyt Justin Vincent
käyttäen $wpdb-objektia
Varoitus: wpdb()
– luokan menetelmiä ei tule kutsua suoraan. Käytä globaalia $wpdb
objektia sen sijaan!
WordPress tarjoaa globaalin objektimuuttujan, $wpdb
, joka on instantiaatio wpdb-luokasta, joka on määritelty /wp-includes/wp-db.php. Oletusarvoisesti $wpdb
on instantioitu puhumaan WordPress-tietokantaan. Jos haluat käyttää $wpdb
WordPress PHP-koodiasi, ilmoita $wpdb
globaaliksi muuttujaksi global keyword
tai käytä superglobaalia $GLOBALS
seuraavalla tavalla:
// 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
objekti ei rajoitu WordPressin luomiin oletustaulukoihin; sen avulla voidaan lukea tietoja mistä tahansa WordPress-tietokannan taulukosta (kuten mukautetuista laajennustaulukoista). Esimerkiksi valita joitakin tietoja mukautetun taulukon nimeltään ”mytable”, voit tehdä seuraavat.
$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );
$wpdb
objekti voi puhua mille tahansa määrälle taulukoita, mutta vain yhteen tietokantaan kerrallaan; oletuksena WordPress-tietokantaan. Siinä harvinaisessa tapauksessa, että sinun täytyy muodostaa yhteys toiseen tietokantaan, sinun täytyy asentaa oma objektisi wpdb
luokasta omalla tietokantayhteystiedollasi. Erittäin monimutkaisia asetelmia monia tietokantoja, harkitse hyperdb sijaan.
Varoitus
Jotkut tämän luokan funktioista ottavat syötteeksi SQL-lausekkeen. Sinun täytyy SQL paeta kaikki epäluotettavia arvoja sisällytät SQL kysely estää SQL injektio hyökkäyksiä. Tarkista dokumentaatiosta, onko toiminto, jota aiot käyttää, karannut SQL: stä sinulle vai odottaa sen olevan ennalta karannut.
lisää SQL-pakenemisesta WordPressissä, katso alla olevasta osiosta ”Protect Queries Against SQL Injection Attacks”.
valitse muuttuja
get_var
funktio palauttaa tietokannasta yhden muuttujan. Vaikka vain yksi muuttuja palautetaan, koko kyselyn tulos tallennetaan välimuistiin myöhempää käyttöä varten. Palauttaa NULL jos tulosta ei löydy.
<?php $wpdb->get_var( 'query', column_offset, row_offset ); ?>
kysely (merkkijono) kysely, jonka haluat suorittaa. Tämän parametrin asettaminen arvoonnull
Palauttaa määritetyn muuttujan edellisen kyselyn välimuistissa olevista tuloksista. column_offset (kokonaisluku) haluttu sarake (0 on ensimmäinen). Oletusarvo on 0. row_offset (kokonaisluku) haluttu rivi (0 on ensimmäinen). Oletusarvo on 0.
esimerkkejä
hakea ja näyttää käyttäjämäärät.
<?php$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );echo "<p>User count is {$user_count}</p>";?>
Nouda ja näytä mukautetun kenttäarvon summa.
<?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>";?>
valitse rivi
hakeaksesi koko rivin kyselystä, käytä get_row
. Funktio voi palauttaa rivin objektina, assosiatiivisena jonona tai numeerisesti indeksoituna jonona. Jos kyselyllä palautetaan useampi kuin yksi rivi, funktio palauttaa vain määritetyn rivin, mutta kaikki rivit tallennetaan välimuistiin myöhempää käyttöä varten. Palauttaa NULL jos tulosta ei löydy, harkitse tätä, kun käytät palautettua arvoa argumenteissa, katso esimerkki alla.
<?php $wpdb->get_row('query', output_type, row_offset); ?>
kysely (merkkijono) kysely, jonka haluat suorittaa. output_type One kolmesta ennalta määritellystä vakiosta. Oletusasetuksena on vastustaa.
- objekti – tulos on tuloste objektina.
- ARRAY_A-tulos on lähtö assosiatiivisena joukkona.
- ARRAY_N-tulos tulostetaan numeerisesti indeksoituna jonona.
row_offset (kokonaisluku) haluttu rivi (0 on ensimmäinen). Oletusarvo on 0.
Examples
Get all the information about Link 10.
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" );
$mylink
objektin ominaisuudet ovat SQL-kyselyn tuloksen sarakenimiä (tässä esimerkissä kaikki sarakkeet $wpdb->links
– taulukosta, mutta voit myös kysellä vain tiettyjä sarakkeita).
echo $mylink->link_id; // prints "10"
sen sijaan käyttämällä
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A );
tuloksena olisi assosiatiivinen joukko:
echo $mylink; // prints "10"
ja
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N );
johtaisi numeerisesti indeksoituun joukkoon:
echo $mylink; // prints "10"
jos linkkitaulukossa ei ole merkintää ID 10, null
palautetaan. Seuraava olisi tällöin epätosi:
if ( null !== $mylink ) { // do something with the link return true;} else { // no link found return false;}
valitse sarake
valitaksesi sarakkeen, käytä koodia get_col
. Tämä funktio tuottaa yksiulotteisen matriisin. Jos kyselyllä palautetaan useampi kuin yksi sarake, funktio palauttaa vain määritetyn sarakkeen, mutta koko tulos tallennetaan välimuistiin myöhempää käyttöä varten. Palauttaa tyhjän taulukon, jos tulosta ei löydy.
<?php $wpdb->get_col( 'query', column_offset ); ?>
kysely (merkkijono) kysely, jonka haluat suorittaa. Tämän parametrin asettaminen arvoonnull
Palauttaa määritetyn sarakkeen edellisen kyselyn välimuistissa olevista tuloksista. column_offset (kokonaisluku) haluttu sarake (0 on ensimmäinen). Oletusarvo on 0.
Examples
for this example, oleta, että blogi on omistettu tietoa autoista. Jokainen viesti kuvaa tietyn auton (esim.1969 Ford Mustang), ja kolme mukautettua kenttää, valmistaja, malli ja vuosi, on osoitettu jokaiseen virkaan. Tämä esimerkki näyttää post otsikot, suodatettu tietyn valmistajan (Ford), ja lajiteltu malli ja vuosi.
Wpdb-luokan get_col-lomakkeella palautetaan joukko kaikkia kriteerit täyttäviä post-tunnuksia, jotka on lajiteltu oikeaan järjestykseen. Sitten foreach konstruktio käytetään iteroida kautta, että joukko post ids, näyttää otsikko kunkin postitse. Huomaa, että tämän esimerkin SQL on luonut 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} }?>
tässä esimerkissä luetellaan kaikki viestit, jotka sisältävät tietyn mukautetun kentän, mutta jotka on lajiteltu toisen mukautetun kentän arvon mukaan.
<?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}}?>
valitse Yleiset tulokset
Yleiset, tietokannasta voidaan vetää useita rivituloksia get_results
. Funktio palauttaa koko kyselyn tuloksen taulukkona. Jokainen tämän joukon alkio vastaa yhtä kyselytuloksen riviä, ja kuten get_row
, se voi olla objekti, assosiatiivinen joukko tai numeroitu joukko. Jos vastaavia rivejä ei löydy tai jos tietokannassa on virhe, palautusarvo on tyhjä array. Jos $ – kyselymerkkijono on tyhjä tai syötät kelvottoman $output_typen, Noll palautetaan.
<?php $wpdb->get_results( 'query', output_type ); ?>
kysely (merkkijono) kysely, jonka haluat suorittaa. output_type yksi neljästä ennalta määritellystä vakiosta. Oletusasetuksena on vastustaa. Katso valitse rivi ja sen esimerkkejä saadaksesi lisätietoja.
- objekti-tulos tulostetaan numeerisesti indeksoituna rivijoukkona.
- OBJECT_K-tulos tulostetaan assosiatiivisena rivijoukkona käyttäen ensimmäisen sarakkeen arvoja avaimina (kaksoiskappaleet hylätään).
- ARRAY_A-tulos tulostetaan numeerisesti indeksoituna assosiatiivisten ryhmien joukkona käyttäen sarakkeen nimiä avaimina.
- ARRAY_N-tulos esitetään numeerisesti indeksoitujen ryhmien joukkona.
koska tämä funktio käyttää funktiota $wpdb – > query (), kaikki luokkamuuttujat on asetettu oikein. ”SELECT” – kyselyn tulokset tallennetaan $ wpdb – > num_rows.
esimerkit
Hanki kaikkien luonnosten tunnukset ja otsikot käyttäjä 5: n mukaan ja echo otsikot.
$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;}
Hanki kaikki tiedot luonnoksista käyttäjältä 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}?>
lisätään rivi
lisätään rivi taulukkoon.
<?php $wpdb->insert( $table, $data, $format ); ?>
taulukko (merkkijono) sen taulukon nimi, johon tiedot lisätään. lisättävät tiedot (Taulukko) (sarakkeessa => arvoparit). Sekä $data-sarakkeiden että $data-arvojen tulisi olla” raw ” (kumpikaan ei saisi olla SQL karannut). format (array|string) (valinnainen) joukko formaatteja on yhdistettävä kunkin arvon $data. Jos merkkijono, tätä muotoa käytetään kaikille arvoille $data. Jos jätetään pois, kaikkia arvoja $datassa käsitellään merkkijonoina, ellei wpdb::$field_types-kentässä toisin mainita.
mahdolliset formaattiarvot: %s merkkijonona, %d kokonaislukuna (kokonaislukuna) ja %f liukulukuna. (Katso lisätietoja alta.)
lisäyksen jälkeen AUTOMAATTINOUSUSARAKKEELLE luotu tunniste voidaan käyttää:
$wpdb->insert_id
funktio palauttaa false-arvon, jos riviä ei voitu lisätä. Muuten, se palauttaa määrä vaikuttaa rivit (joka on aina 1).
huomaa: dataparametrin sarakkeen arvo-osuus=>arvoparien on oltava skalaarisia. Jos ohitat array (tai objekti) arvona lisätään luo varoitus samanlainen ”mysql_real_escape_string () odottaa parametrin 1 olevan merkkijono, array annetaan rivillä 880 file /var/www/html/WP-includes/wp-db.php”.
esimerkkejä
lisätään riviin kaksi saraketta, joista ensimmäinen arvo on merkkijono ja toinen numero:
$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );
korvaa rivi
korvaa rivi taulukossa, jos se on olemassa, tai Lisää uusi rivi taulukossa, jos riviä ei ole jo olemassa.
<?php $wpdb->replace( $table, $data, $format ); ?>
taulukko (merkkijono)taulukon nimi, jolla data korvataan. data (array) korvattava Data (sarakkeessa => arvoparit). Sekä $data-sarakkeiden että $data-arvojen tulisi olla” raw ” (kumpikaan ei saisi olla SQL karannut). format (array|string) (valinnainen) joukko formaatteja on yhdistettävä kunkin arvon $data. Jos merkkijono, tätä muotoa käytetään kaikille arvoille $data. Jos jätetään pois, kaikkia arvoja $datassa käsitellään merkkijonoina, ellei wpdb::$field_types-kentässä toisin mainita.
mahdolliset formaattiarvot: %s merkkijonona, %d kokonaislukuna (kokonaislukuna) ja %f liukulukuna. (Katso lisätietoja alta.)
jos merkkijonoelementin pituus $data array-parametrissa on pidempi kuin määritelty pituus MySql-tietokantataulukossa, insertti epäonnistuu, tämä funktio palauttaa epätosi, mutta $wpdb – >last_error ei asetu kuvailevaksi viestiksi. Sinun täytyy varmistaa tiedot haluat lisätä mahtuu tietokantaan-älä oleta MySQL katkaisee tiedot.
korvaamisen jälkeen AUTOMAATTINOUSUSARAKKEELLE luotu tunnus voidaan käyttää:
$wpdb->insert_id
tämä funktio palauttaa määrän, joka ilmaisee kyseisten rivien määrän. Tämä on poistettujen ja lisättyjen rivien summa. Jos yhden rivin korvaava luku on 1, lisättiin rivi eikä yhtään riviä poistettu. Jos luku on suurempi kuin 1, yksi tai useampi vanha rivi poistettiin ennen uuden rivin lisäämistä. Yksi rivi voi korvata useamman kuin yhden vanhan rivin, jos taulukossa on useita yksilöllisiä indeksejä ja uusi rivi toistaa eri vanhojen rivien arvot eri yksilöllisissä indekseissä.
tämä funktio palauttaa false-arvon, jos olemassa olevaa riviä ei voitu korvata eikä uutta riviä lisätä.
esimerkit
korvaa rivi, jonka ensimmäinen arvo on rivin tunnus, toinen A-merkkijono ja kolmas A-numero:
$wpdb->replace( 'table', array( 'indexed_id' => 1,'column1' => 'value1', 'column2' => 123 ), array( '%d','%s', '%d' ) );
Päivitä rivit
Päivitä taulukon rivi. Palauttaa false jos virheitä, tai rivien määrä vaikuttaa, jos onnistunut.
<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>
taulukko (merkkijono) päivitettävän taulukon nimi. päivitettävät tiedot (sarakkeen arvo = > arvoparit). Sekä $data-sarakkeiden että $data-arvojen tulisi olla” raw ” (kumpikaan ei saisi olla SQL karannut). Tämä tarkoittaa, että jos käytät GET-tai POST-tietoja, saatat joutua käyttämään stripslasheja() välttääksesi viiltojen päätymisen tietokantaan. missä (array) nimetty joukko missä lausekkeet (sarakkeessa => arvo paria). Useita lausekkeita liitetään ANDs: iin. Sekä $missä sarakkeet ja $missä arvojen pitäisi olla ”raaka”. format (array|string) (valinnainen) joukko formaatteja on yhdistettävä kunkin arvon $data. Jos merkkijono, tätä muotoa käytetään kaikille arvoille $data. where_format (array|string) (valinnainen) joukko formaatteja on kartoitettu kunkin arvon $missä. Jos merkkijono, tätä muotoa käytetään kaikki kohteet $missä.
mahdolliset formaattiarvot: %s merkkijonona, %d kokonaislukuna (kokonaislukuna) ja %f liukulukuna. (Katso lisätietoja alta.) Jos jätetään pois, kaikki arvot $missä käsitellään merkkijonoina.
Palautusarvot: Tämä funktio palauttaa päivitettyjen rivien määrän, tai false, jos on virhe. Muista, että jos $data vastaa sitä, mitä tietokannassa on jo, rivejä ei päivitetä, joten 0 palautetaan. Tämän vuoksi kannattaa varmaankin tarkistaa palautus väärällä = = = $tulos
esimerkit
Päivitä rivi, jossa ID on 1, ensimmäisen sarakkeen arvo on merkkijono ja toisen sarakkeen arvo on numero:
$wpdb->update( 'table', array( 'column1' => 'value1',// string'column2' => 'value2'// integer (number) ), array( 'ID' => 1 ), array( '%s',// value1'%d'// value2), array( '%d' ) );
huomio: %d
ei voi käsitellä pilkku-arvoja – jos et käytä kokonaisia numeroita, käytä merkkijonoa/%s.
poista rivit
delete-toiminto lisättiin WordPress 3.4.0: aan, ja sitä voidaan käyttää rivien poistamiseen taulukosta. Käyttö on hyvin samanlainen kuin päivitys ja lisäys. Se palauttaa päivitettyjen rivien määrän tai virheellisen virheen.
käyttö
<?php $wpdb->delete( $table, $where, $where_format = null ); ?>
parametrit
$taulukko (merkkijono) (pakollinen) taulukon nimi. Oletus: Ei mitään $missä (array) (pakollinen) nimetty array missä lausekkeet (sarakkeessa -> arvo paria). Useita lausekkeita liitetään ANDs: iin. Sekä $missä sarakkeet ja $missä arvojen pitäisi olla ”raaka”. Oletusarvo: Ei mitään $where_format (merkkijono / array) (valinnainen) joukko formaatteja, jotka on kartoitettu kunkin arvon $missä. Jos merkkijono, että muotoa käytetään kaikki kohteet $missä. Muoto on yksi osista ”%d”, ”%f”, ”%s ” (kokonaisluku, float, merkkijono; katso lisätietoja jäljempänä). Jos jätetään pois, kaikki arvot $missä käsitellään merkkijonoina, ellei toisin mainita wpdb::$field_types. Oletus: null
esimerkit
// Default usage.$wpdb->delete( 'table', array( 'ID' => 1 ) );// Using where formatting.$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );
Yleiset kyselyt
query
funktio mahdollistaa minkä tahansa SQL-kyselyn suorittamisen WordPress-tietokannassa. Sitä käytetään parhaiten, kun tarvitaan erityisiä, mukautettuja tai muuten monimutkaisia SQL-kyselyjä. Peruskyselyt, kuten tiedon valitseminen taulukosta, löytyvät yllä olevista muista wpdb
funktioista, kuten get_results, get_var, get_row or get_col
.
yleinen syntaksi
<?php $wpdb->query('query'); ?>
kysely (merkkijono) SQL-kysely, jonka haluat suorittaa.
tämä funktio palauttaa kokonaislukuarvon, joka ilmaisee valittujen/valittujen rivien lukumäärän SELECT, INSERT, DELETE, UPDATE jne. Luo, muuta, katkaise ja pudota SQL-lauseille (jotka vaikuttavat kokonaisiin taulukoihin tiettyjen rivien sijaan) tämä funktio palauttaa arvon TRUE
onnistuessaan. Jos MySQL-virhe havaitaan, toiminto palaa FALSE
. Huomaa, että koska sekä 0 että FALSE
voidaan palauttaa rivikyselyihin, kannattaa olla tarkkana tarkistettaessa palautusarvoa. Käytä identity operator ( = = = ) tarkistaa virheitä (esim., false = = = = $tulos), ja onko mitään rivejä vaikuttanut (esim., 0 = = = $tulos).
Examples
Delete the ”gargle” meta key and value from Post 13. (Lisäämme ”valmistella” menetelmä varmistaa, että emme ole tekemisissä laittoman operaation tai laittomia merkkejä):
$wpdb->query( $wpdb->prepare( " DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", 13, 'gargle' ));
suorittaa WordPress delete_post_meta()
.
Aseta sivun 15 vanhempi sivulle 7.
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %dWHERE ID = %dAND post_status = %s", 7, 15, 'static') );
suojaa kyselyt SQL-Injektiohyökkäyksiltä
saadaksesi täydellisemmän yleiskuvan SQL-pakenemisesta WordPressissä, katso tietokannan tietojen validointi. Se on pakko lukea kaikille WordPress koodi avustajat ja plugin kirjoittajat.
kaikkien SQL-kyselyissä olevien tietojen on oltava SQL-karanneita, ennen kuin SQL-kysely suoritetaan SQL-injektiohyökkäysten estämiseksi. prepare
-menetelmä suorittaa tämän toiminnallisuuden WordPressille, joka tukee sekä sprintf ()-että vsprintf () – tyyppistä syntaksia.
huomaa: alkaen 3.5, wpdb::prepare () toteuttaa vähintään 2 argumenttia.
<?php $sql = $wpdb->prepare( 'query' , value_parameter ); ?>
kysely (merkkijono) SQL-kysely, jonka haluat suorittaa, paikkamerkinnöillä (KS.alla). value_parametri (int|string|array) arvo, joka korvataan paikkamerkiksi. Monet arvot saatetaan ohittaa yksinkertaisesti siirtämällä enemmän argumentteja sprinttifin () – tyylisesti. Vaihtoehtoisesti toinen argumentti voi olla joukko, joka sisältää arvot kuten PHP: n vsprintf () – funktiossa. On varottava antamasta suoraa käyttäjän syöttöä tähän parametriin, mikä mahdollistaisi minkä tahansa kyselyn manipuloinnin, jossa on useita paikkamerkkejä. Arvot eivät voi olla SQL-karanneita.
paikkamerkit
prepare-ohjelman kyselyparametri hyväksyy sprintf () – tyyppiset paikkamerkit. Tiedostomuodot %s (merkkijono), %d (kokonaisluku) ja %f (liukuva) ovat tuettuja. (Paikkamerkit %s ja %d ovat olleet saatavilla siitä lähtien, kun funktio lisättiin ytimeen versiossa 2.3, %f on ollut saatavilla vain versiosta 3.3 lähtien.) Muut %
merkit voivat aiheuttaa jäsennysvirheitä, ellei niitä pääse pakoon. Kaikki %
merkit SQL-kieliliteraalien sisällä, kuten jokerimerkit mukaan lukien, täytyy olla tupla – % karannut kuin %%
. Kaikki kohdat %d, % f ja %s jätetään lainaamatta kyselymerkkijonossa. Huomaa, että % d paikkamerkki hyväksyy vain kokonaislukuja, joten et voi antaa numeroita, joissa on pilkku-arvoja %d: n kautta. Jos tarvitset pilkku-arvoja, käytä sen sijaan liukulukua %f.
Examples
Add Meta key = > arvopari ”Harriet’ s Adages ”=> ” WordPressin tietokantaliittymä on kuin sunnuntaiaamuna: helppo.”lähettää 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 ) );
esiintynyt WordPress by add_meta()
.
sama kysely käyttäen vsprintf () – tyyppistä syntaksia.
$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) ) );
huomaa, että tässä esimerkissä pakkaamme arvot yhteen jonoksi. Tästä voi olla hyötyä, kun emme tiedä, kuinka monta argumenttia meidän on läpäistävä ennen suoritusta.
huomaa, että sinun ei tarvitse huolehtia merkkijonojen lainaamisesta. Sen sijaan, että siirtäisit muuttujat suoraan SQL-kyselyyn, käytä merkkijonojen paikkamerkkiä %s
paikkamerkkiä, kokonaislukujen paikkamerkkiä %d
paikkamerkkiä ja kellukkeiden paikkamerkkiä %f. Voit siirtää niin monta arvoa kuin haluat, jokainen uutena parametrina prepare()
– menetelmässä.
Näytä ja piilota SQL-virheet
voit kytkeä virheen kaikuen päälle ja pois päältä vastaavasti show_errors
ja hide_errors
.
<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>
voit myös tulostaa viimeisimmän kyselyn tuottaman virheen (jos sellainen on) numerolla print_error
.
<?php $wpdb->print_error(); ?>
Huomautus: Jos käytät WordPress Multisite, sinun täytyy määritellä DIEONDBERROR vakio tietokannan virheitä näyttää näin: <?php define( 'DIEONDBERROR', true ); ?>
hakeminen Saraketiedot
voit hakea tietoa viimeisimmän kyselytuloksen sarakkeista numerolla get_col_info
. Tästä voi olla hyötyä, kun funktio on palauttanut objektin, jonka ominaisuuksia et tiedä. Toiminto tulostaa haluamasi tiedot määritetystä sarakkeesta tai taulukon, jossa on tiedot kaikista sarakkeista kyselyn tuloksesta, jos saraketta ei ole määritetty.
<?php $wpdb->get_col_info('type', offset); ?>
Kirjoita (merkkijono), mitä tietoja haluat hakea. Voi ottaa minkä tahansa seuraavista arvoista (luettelo otettu ezSQL docs). Oletuksena nimi.
- Nimi-sarakkeen nimi. Oletusarvo.
- taulukko – taulukon nimi sarake kuuluu
- max_length – sarakkeen enimmäispituus
- not_null – 1 Jos sarake ei voi olla nolla
- primary_key – 1 Jos sarake on ensisijainen avain
- unique_key – 1 Jos sarake on yksilöllinen avain
- multiple_key – 1 Jos sarake on ei-yksilöllinen avain
- numeerinen – 1 Jos sarake on numeerinen
- möykky – 1 Jos sarake on möykky
- tyyppi – sarakkeen tyyppi
- allekirjoittamaton – 1 jos sarake on allekirjoittamaton
- zerofill – 1 jos sarake on allekirjoittamaton on nollatäytteinen
Siirtymä (kokonaisluku) ilmoitetaan sarake, josta tiedot haetaan (ensimmäinen sarake on 0). Oletusarvo on -1.
- -1-Hae tiedot kaikista sarakkeista. Lähtö array. Oletusarvo.
- ei-negatiivinen kokonaisluku-Hae tiedot määrätystä sarakkeesta (0 on ensimmäinen).
välimuistin tyhjentäminen
voit tyhjentää SQL-tulosvaraston arvolla flush
.
<?php $wpdb->flush(); ?>
Tämä poistaa $wpdb->last_result
, $wpdb->last_query
ja $wpdb->col_info
.
Luokkamuuttujat
$show_errosoi, onko Virhekaiku päällä vai ei. Oletusarvo on TRUE. $num_queries suoritettujen kyselyjen määrä. $last_query viimeisin suoritettu kysely. $last_error viimeisin MySQL: n tuottama virheteksti. $kyselyt voit tallentaa kaikki tietokannassa suoritettavat kyselyt ja niiden pysäytysajat asettamalla savequeries-vakion TRUE-arvoksi (tämä vakio on FALSE). Jos SAVEQUERIES on totta, kyselysi tallennetaan tähän muuttujaan taulukkona. $last_tulosta viimeisimmät kyselytulokset. $col_info sarakkeen tiedot viimeisimmistä kyselyn tuloksista. Katso Palstatiedot. $insert_id ID luotu AUTO_ increment-sarakkeelle viimeisimmän LISÄYSKYSELYN avulla. $num_rows viimeisen kyselyn palauttamien rivien määrä. $etuliite annettu WordPress taulukon etuliite sivuston. $base_prefix alkuperäinen etuliite sellaisena kuin se on määritelty wp-config.php. Multi-site: Käytä, Jos haluat saada etuliite ilman blogin numero liitteenä.
Multi-Site muuttujia
jos käytät Multi-Site, sinulla on myös pääsy seuraaviin:
$blogid nykyisen sivuston tunnus (blogi). $siteid nykyisen verkon tunnus (entinen ”sivusto”). WordPress tukee tällä hetkellä vain yhtä verkkoa usean sivuston asennusta kohden, mutta se voi muuttua tulevaisuudessa. Katso lisätietoja seuraavasta:
- WordPress: ero site_id: n ja blog_id: n välillä?
- http://stackoverflow.com/a/4189358/1924128 – toinen hyvä vastaus samaan kysymykseen.
taulukot
WordPress-tietokantataulukoihin on helppo viitata wpdb
– luokassa.
$posts the table of Posts. $postmeta Metasisältö (alias Custom kentät) taulukko. $comments the Comments table. $commentmeta taulukko sisältää lisäkommenttitietoja. $termmeta termmeta-taulukko sisältää termin meta-arvot. $ehdot ehdot taulukko sisältää’ kuvaus ’ luokat, linkki luokat, tunnisteet. $term_taxonomy term_taxonomy-taulukko kuvaa eri taksonomioita (termien luokkia). Luokat, Linkkiluokat ja Tunnisteet ovat taksonomioita. $term_relationships termisuhdetaulukko sisältää linkin termin ja kyseistä termiä käyttävän objektin välillä, mikä tarkoittaa, että tämä tiedostopiste on jokaisessa viestissä käytettävässä kategoriassa. $käyttäjät taulukko käyttäjien. $usermeta usermeta-taulukko sisältää käyttäjän muita tietoja, kuten nimimerkkejä, kuvauksia ja käyttöoikeuksia. $linkittää Linkkitaulukon. $optiot optiot taulukko.
Multisiittitaulukot
näitä taulukoita käytetään vain monisiittisissä asennuksissa.
$blogit taulukko sisältää luettelon erillisistä blogeista(sivustoista), jotka on perustettu verkon (t) sisällä. $ilmoittautuu Ilmoittautumistaulukkoon. $site Sivustotaulukko sisältää luettelon verkoista (jotka aiemmin tunnettiin nimellä” sivustot ” wpmu: ssa), jotka on perustettu asennuksessa (yleensä on vain yksi sivusto lueteltu tässä taulukossa). $sitemeta Verkkoasetukset (Site Meta) – taulukko sisältää kaikki vaihtoehdot, joita voidaan soveltaa koko multisite-asennukseen. $sitecategories sivuston luokat taulukko. $registration_log Rekisteröintilokitaulukko. $blog_versions Blogiversiot taulukko.
Lähdekooditiedosto
wpdb() sijaitsee wp-includes/wp-db.php
.
Related
- Member Function: wpdb::esc_like() – Escape LIKE statements before use in SQL.
Articles
- Article: The Loop – peruskatsaus sen käytöstä kyselyssä WordPress-silmukassa.
- artikkeli: Kyselyn yleiskatsaus-selvitys siitä, miten määrittää, mitkä kyselyt tuottavat WordPress.
- artikkeli: Räätälöintikyselyt koukun kautta
- artikkeli: Näytä artikkelit MySQL – kysely muokatulla
- artikkeli: Rakenna kehittyneet kyselyt Taksonomioista
- artikkeli: Rakenna mukautettu kysely offsetillä ja sivunumerolla
Koodidokumentaatio
- Luokka: wp_query – detailed overview of class Wp_query
- Class: Wp_comment_query-class for comment – related quiries
- class: Wp_user_query-class for user-related Quiries
- object: $wpdb – Overview on the use of the $wpdb object
- Function: set_query_var()
- Function: get_query_var()
- Function: query_posts() – Create additional custom query
- Function: get_post() – Take an ID of a item and return the records in the database for that article
- funktio: get_posts() – erikoisfunktio, joka palauttaa joukon kohteita
- funktio: get_pages() – erikoisfunktio, joka palauttaa joukon sivuja
- funktio: have_posts() – ehto, joka määrittää, palauttiko kysely artikkelin
- Function: the_post() – käytetään asettamaan silmukka automaattisesti kyselyn jälkeen
- Function: rewind_posts() – tyhjentää nykyisen silmukan
- Function: setup_postdata() – asettaa TIEDOT yksittäiselle kyselyn tulokselle silmukan sisällä
- Funktion: wp_reset_postdata() – palauttaa edellisen kyselyn (yleensä silmukan jälkeen toisen silmukan sisällä)
- funktio: wp_reset_query()
- funktio: is_main_query () – varmistaa, että muuttuva kysely on vain pääkysely
- Toimintakoukku: pre_get_posts – muuta WordPress – kyselyjä ennen kuin ne suoritetaan
- Toimintokoukku: the_post-muokkaa post-objektia kyselyn jälkeen
- Filter Hook: found_posts-muuttaa kohteen arvoa found_posts wp_query