WordPress.org

Jazyků: English • Italiano • 日本語 Русский • 中文(简体) • 中文(繁體) • 한국어 • (Přidat jazyk)

do Databáze: wpdb Třídy

WordPress definuje třídu s názvem wpdb, který obsahuje sadu funkcí pro práci s databází. Jeho primárním účelem je poskytnout rozhraní s databází WordPress, ale lze jej použít ke komunikaci s jakoukoli jinou vhodnou databází. Zdrojový kód třídy je volně založen na třídě ezSQL; napsal a udržoval Justin Vincent

pomocí objektu $ wpdb

varování: metody ve třídě wpdb() by neměly být volány přímo. Místo toho použijte globální objekt $wpdb!

WordPress poskytuje globální proměnná objekt, $wpdb, což je instance wpdb třídy definované v /wp-includes/wp-db.Linux. Ve výchozím nastavení je $wpdb instance pro komunikaci s databází WordPress. Pro přístup $wpdb v WordPress PHP kód, prohlašuji, $wpdb jako globální proměnnou pomocí global keyword, nebo použijte superglobal $GLOBALS následujícím způsobem:

// 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 předmět není omezen pouze na výchozí tabulky vytvořené WordPress; to mohou být použity k číst data z libovolné tabulky v databázi WordPress (jako vlastní plugin, tabulky). Chcete-li například vybrat některé informace z vlastní tabulky s názvem „mytable“, můžete provést následující.

$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );

objekt $wpdb může hovořit s libovolným počtem tabulek, ale pouze s jednou databází najednou; ve výchozím nastavení databáze WordPress. V ojedinělém případě se musíte připojit k jiné databázi, budete muset vytvořit vlastní objekt ze třídy wpdb s vlastními informacemi o připojení k databázi. U extrémně komplikovaných nastavení s mnoha databázemi zvažte místo toho použití hyperdb.

varování

některé funkce v této třídě berou jako vstup příkaz SQL. Musíte SQL uniknout všem nedůvěryhodným hodnotám, které začleníte do dotazu SQL, abyste zabránili útokům SQL injection. Zkontrolujte dokumentaci a zjistěte, zda funkce, kterou chcete použít, pro vás SQL escapuje nebo očekává, že bude předem uniknuta.

další informace o úniku SQL v aplikaci WordPress naleznete v části s názvem Ochrana dotazů před útoky SQL Injection níže.

vyberte proměnnou

funkce get_var vrátí jednu proměnnou z databáze. Přestože je vrácena pouze jedna proměnná, celý výsledek dotazu je uložen do mezipaměti pro pozdější použití. Vrátí NULL, pokud není nalezen žádný výsledek.

<?php $wpdb->get_var( 'query', column_offset, row_offset ); ?>

dotaz (řetězec) dotaz, který chcete spustit. Nastavení tohoto parametru nanullvrátí zadanou proměnnou z výsledků předchozího dotazu v mezipaměti. column_offset (celé číslo) požadovaný sloupec (0 je první). Výchozí hodnota je 0. row_offset (celé číslo) požadovaný řádek (0 je první). Výchozí hodnota je 0.

příklady

načíst a zobrazit počet uživatelů.

<?php$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );echo "<p>User count is {$user_count}</p>";?>

načíst a zobrazit součet vlastní hodnoty pole.

<?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>";?> 

vyberte řádek

Chcete-li načíst celý řádek z dotazu, použijte get_row. Funkce může vrátit řádek jako objekt, asociativní pole nebo jako číselně indexované pole. Pokud je dotazem vrácen více než jeden řádek, funkce vrátí pouze zadaný řádek, ale všechny řádky jsou uloženy do mezipaměti pro pozdější použití. Vrací NULL pokud není nalezen žádný výsledek, zvažte to při použití vrácené hodnoty v argumentech, viz příklad níže.

<?php $wpdb->get_row('query', output_type, row_offset); ?>

dotaz (řetězec) dotaz, který chcete spustit. output_type jedna ze tří předdefinovaných konstant. Výchozí hodnota je objekt.

  • objekt-výsledek bude výstupem jako objekt.
  • ARRAY_A-výsledek bude vyveden jako asociativní pole.
  • ARRAY_N-výsledek bude vyveden jako číselně indexované pole.

row_offset (celé číslo) požadovaný řádek (0 je první). Výchozí hodnota je 0.

příklady

Získejte všechny informace o odkazu 10.

$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" );

vlastnosti $mylink předmět jsou názvy sloupců z výsledku SQL dotazu (v tomto příkladu všechny sloupce z $wpdb->links stolu, ale můžete také dotaz pro konkrétní sloupce).

echo $mylink->link_id; // prints "10"

V kontrastu, s použitím

$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A );

by mělo za následek asociativní pole:

echo $mylink; // prints "10"

a

$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N );

by mělo za následek číselně indexované pole:

echo $mylink; // prints "10"

pokud v tabulce odkazů není žádný záznam s ID 10, null bude vráceno. Následující by pak bylo nepravdivé:

if ( null !== $mylink ) { // do something with the link return true;} else { // no link found return false;}

vyberte sloupec

Chcete-li vybrat sloupec, použijte get_col. Tato funkce vydává jednorozměrné pole. Pokud dotaz vrátí více než jeden sloupec, funkce vrátí pouze zadaný sloupec, ale celý výsledek je uložen do mezipaměti pro pozdější použití. Vrátí prázdné pole, pokud není nalezen žádný výsledek.

<?php $wpdb->get_col( 'query', column_offset ); ?>

dotaz (řetězec) dotaz, který chcete spustit. Nastavení tohoto parametru nanullvrátí zadaný sloupec z výsledků předchozího dotazu v mezipaměti. column_offset (celé číslo) požadovaný sloupec (0 je první). Výchozí hodnota je 0.

příklady

pro tento příklad předpokládejme, že blog je věnován informacím o automobilech. 1969 Ford Mustang) a ke každému příspěvku jsou přiřazena tři vlastní pole, výrobce, model a rok. Tento příklad zobrazí názvy příspěvků, filtrované konkrétním výrobcem (Ford) a seřazené podle modelu a roku.

formulář get_col třídy wpdb se používá k vrácení pole všech ID příspěvků splňujících kritéria a seřazených ve správném pořadí. Pak foreach konstrukt se používá k iteraci přes toto pole post ID, zobrazující název každého příspěvku. Všimněte si, že SQL pro tento příklad vytvořil 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} }?>

tento příklad uvádí všechny příspěvky, které obsahují konkrétní vlastní pole, ale seřazené podle hodnoty druhého vlastního pole.

<?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}}?>

SELECT Generic Results

Generic, multiple row results can be pulled from the database with get_results. Funkce vrátí celý výsledek dotazu jako pole. Každý prvek tohoto pole odpovídá jednomu řádku výsledku dotazu a jako get_row může být objekt, asociativní pole nebo očíslované pole. Pokud nejsou nalezeny žádné odpovídající řádky nebo pokud dojde k chybě databáze, bude návratovou hodnotou prázdné pole. Pokud je váš řetězec dotazu $prázdný nebo předáte neplatný řetězec $ output_type, vrátí se NULL.

<?php $wpdb->get_results( 'query', output_type ); ?>

dotaz (řetězec) dotaz, který chcete spustit. output_type jedna ze čtyř předdefinovaných konstant. Výchozí hodnota je objekt. Další informace naleznete v části vyberte řádek a jeho příklady.

  • objekt-výsledek bude vyveden jako číselně indexované pole řádkových objektů.
  • OBJECT_K-výsledek bude vyveden jako asociativní pole řádkových objektů s použitím hodnot prvního sloupce jako klíče (duplikáty budou vyřazeny).
  • ARRAY_A-výsledek bude vyveden jako číselně indexované pole asociativních polí s použitím názvů sloupců jako klíčů.
  • ARRAY_N-výsledek bude vyveden jako číselně indexované pole numericky indexovaných polí.

protože tato funkce používá funkci $ wpdb->query (), všechny proměnné třídy jsou správně nastaveny. Počet výsledků pro dotaz „SELECT“ bude uložen v $wpdb->num_rows.

příklady

získejte ID a názvy všech konceptů uživatelem 5 a echo tituly.

$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;}

Získejte všechny informace o konceptech uživatelem 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}?>

Vložit řádek

Vložit řádek do tabulky.

<?php $wpdb->insert( $table, $data, $format ); ?>

tabulka (řetězec) název tabulky, do které se vkládají data. data (pole) Data k vložení (ve sloupci => páry hodnot). Jak sloupce $data, tak hodnoty $data by měly být “ raw “ (ani by nemělo uniknout SQL). formát (array|string) (volitelné) pole formátů, které mají být mapovány na každou z hodnot v $data. Pokud řetězec, tento formát bude použit pro všechny hodnoty v $data. Pokud jsou všechny hodnoty v $data vynechány, budou považovány za řetězce, pokud není v wpdb::$field_types uvedeno jinak.

možné hodnoty formátu: %s jako řetězec; %d jako celé číslo( celé číslo); a %f jako float. (Viz níže pro více informací.)

po vložení je ID generované pro sloupec AUTO_INCREMENT přístupné pomocí:

$wpdb->insert_id

Tato funkce vrátí false, pokud řádek nelze vložit. V opačném případě vrátí počet postižených řádků(který bude vždy 1).

poznámka: část hodnoty sloupce datového parametru=>páry hodnot musí být skalární. Pokud se vám předat pole (nebo objekt), jako hodnota, která bude vložena bude generovat varování podobné „mysql_real_escape_string() očekává parametr 1 být string, array vzhledem na lince 880 v souboru /var/www/html/wp-includes/wp-db.Linux“.

příklady

vložte dva sloupce do řádku, přičemž první hodnota je řetězec a druhá číslo:

$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );

nahradit řádek

nahradit řádek v tabulce, pokud existuje, nebo vložit nový řádek do tabulky, pokud řádek již neexistoval.

<?php $wpdb->replace( $table, $data, $format ); ?>

tabulka (string) název tabulky, nahradit data. data (pole) data nahradit (ve sloupci => páry hodnot). Jak sloupce $data, tak hodnoty $data by měly být “ raw “ (ani by nemělo uniknout SQL). formát (array|string) (volitelné) pole formátů, které mají být mapovány na každou hodnotu v $data. Pokud řetězec, tento formát bude použit pro všechny hodnoty v $data. Pokud jsou všechny hodnoty v $data vynechány, budou považovány za řetězce, pokud není v wpdb::$field_types uvedeno jinak.

možné hodnoty formátu: %s jako řetězec; %d jako celé číslo( celé číslo); a %f jako float. (Viz níže pro více informací.)

je-Li délka řetězce prvek v $data parametr pole je delší, že definované délky v MySql databáze tabulky, vložení se nezdaří, tato funkce vrátí false, ale $wpdb->last_error nebude nastavena na popisnou zprávu. Musíte zajistit, aby data, která chcete vložit, zapadla do databáze – nepředpokládejte, že MySql data zkrátí.

Po nahradit, ID vytvořené pro AUTO_INCREMENT sloupec lze přistupovat s:

$wpdb->insert_id

Tato funkce vrací počet uvést počet ovlivněných řádků. Toto je součet řádků odstraněných a vložených. Pokud je počet 1 pro jednořadé nahrazení, byl vložen řádek a nebyly odstraněny žádné řádky. Pokud je počet větší než 1, byl před vložením nového řádku odstraněn jeden nebo více starých řádků. Je možné, aby jeden řádek nahradil více než jeden starý řádek, pokud tabulka obsahuje více jedinečných indexů a nový řádek duplikuje hodnoty pro různé staré řádky v různých jedinečných indexech.

tato funkce vrací false, pokud stávající řádek nelze vyměnit a nový řádek nelze vložit.

Příklady

Nahradit řadě, první hodnota je na řádku id, druhý řetězec a třetí řadu:

$wpdb->replace( 'table', array( 'indexed_id' => 1,'column1' => 'value1', 'column2' => 123 ), array( '%d','%s', '%d' ) );

AKTUALIZOVAT řádky

Aktualizovat řádek v tabulce. Vrátí false, pokud chyby, nebo počet řádků postižených, pokud úspěšný.

<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>

tabulka (řetězec) název tabulky, kterou chcete aktualizovat. data (pole) Data k aktualizaci (ve sloupci => páry hodnot). Jak sloupce $data, tak hodnoty $data by měly být “ raw “ (ani by nemělo uniknout SQL). To znamená, že pokud používáte GET nebo POST data, možná budete muset použít stripslashes (), aby se zabránilo lomítka skončí v databázi. where (array) pojmenované pole klauzulí WHERE (ve sloupci => páry hodnot). Více klauzulí bude spojeno s ANDs. Jak sloupce $where, tak hodnoty $where by měly být „syrové“. formát (array|string) (volitelné) pole formátů, které mají být mapovány na každou z hodnot v $data. Pokud řetězec, tento formát bude použit pro všechny hodnoty v $data. where_format (array|string) (volitelné) pole formátů, které mají být mapovány na každou z hodnot v $where. Pokud řetězec, tento formát bude použit pro všechny položky v $where.

možné hodnoty formátu: %s jako řetězec; %d jako celé číslo (celé číslo) a %f jako float. (Viz níže pro více informací.) Pokud jsou vynechány, všechny hodnoty v $where budou považovány za řetězce.

návratové hodnoty: Tato funkce vrací počet aktualizovaných řádků nebo false, pokud dojde k chybě. Mějte na paměti, že pokud $data odpovídají tomu, co je již v databázi, nebudou aktualizovány žádné řádky, takže 0 bude vráceno. Z tohoto důvodu, byste měli asi podívat návratu s falešnými === $result

Příklady

Aktualizovat řádek, kde ID je 1, hodnota v prvním sloupci je string a hodnota ve druhém sloupci je číslo:

$wpdb->update( 'table', array( 'column1' => 'value1',// string'column2' => 'value2'// integer (number) ), array( 'ID' => 1 ), array( '%s',// value1'%d'// value2), array( '%d' ) );

Pozornost: %d nemůže vypořádat s čárkou hodnoty – pokud nepoužíváte plnou čísel, použijte řetězec/%s.

odstranit řádky

funkce odstranění byla přidána v WordPress 3.4.0 a může být použita k odstranění řádků z tabulky. Použití je velmi podobné aktualizaci a vložení. Vrací počet aktualizovaných řádků nebo false při chybě.

použití

<?php $wpdb->delete( $table, $where, $where_format = null ); ?>

parametry

$table (string) (required) název tabulky. Výchozí: None $where (array) (required) pojmenované pole klauzulí WHERE (ve sloupci -> páry hodnot). Více klauzulí bude spojeno s ANDs. Jak sloupce $where, tak hodnoty $where by měly být „raw“. Default: None $where_format (string/array) (volitelné) pole formátů, které mají být mapovány na každou z hodnot v $where. Pokud řetězec, tento formát bude použit pro všechny položky v $where. Formát je jeden z ‚%d‘, ‚%f‘, ‚ %s ‚(integer, float, string; viz níže pro více informací). Pokud jsou vynechány, všechny hodnoty v $where budou považovány za řetězce, pokud není v wpdb uvedeno jinak::$field_types. Výchozí: null

příklady

// Default usage.$wpdb->delete( 'table', array( 'ID' => 1 ) );// Using where formatting.$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );

spuštění obecných dotazů

funkce query umožňuje provádět jakýkoli dotaz SQL v databázi WordPress. Nejlépe se používá, když je potřeba specifických, vlastních nebo jinak složitých dotazů SQL. Další základní dotazy, jako je výběr informací z tabulky, viz další funkce wpdb výše, například get_results, get_var, get_row or get_col.

Obecná syntaxe

<?php $wpdb->query('query'); ?>

dotaz (řetězec) dotaz SQL, který chcete spustit.

tato funkce vrací celočíselnou hodnotu označující počet řádků ovlivněných/vybraných pro výběr, vložení, odstranění, aktualizaci atd. Pro příkazy CREATE, ALTER, TRUNCATE and DROP SQL (které ovlivňují celé tabulky namísto konkrétních řádků) vrací tato funkce TRUE při úspěchu. Pokud dojde k chybě MySQL, funkce se vrátí FALSE. Všimněte si, že 0 i FALSE může být vrácen k řadě dotazů, měli byste být opatrní při kontrole návratové hodnoty. Použijte operátor identity ( = = = ) pro kontrolu chyb (např. false = = = $ result) a zda byly ovlivněny nějaké řádky (např. 0 = = = $ result).

příklady

odstraňte meta klíč a hodnotu‘ gargle ‚ z příspěvku 13. (Přidáme metodu „připravit“, abychom se ujistili, že se nezabýváme nelegální operací nebo nelegálními postavami):

$wpdb->query( $wpdb->prepare( " DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", 13, 'gargle' ));

provedeno v WordPress podle delete_post_meta().

nastavte nadřazenou stránku 15 na stranu 7.

$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %dWHERE ID = %dAND post_status = %s", 7, 15, 'static') );

Chraňte dotazy před útoky SQL Injection

podrobnější přehled o úniku SQL v aplikaci WordPress naleznete v části Ověření dat databáze. Je to nutné číst pro všechny přispěvatele kódu WordPress a autory pluginů.

všechna data v dotazech SQL musí být před provedením dotazu SQL uniknuta, aby se zabránilo útokům SQL injection. Metoda prepare provádí tuto funkci pro WordPress, který podporuje syntaxi podobnou sprintf () a vsprintf ().

poznámka: od 3.5, wpdb::prepare () vynucuje minimálně 2 argumenty.

<?php $sql = $wpdb->prepare( 'query' , value_parameter ); ?>

dotaz (řetězec) dotaz SQL, který chcete spustit, s zástupnými symboly (viz níže). value_parameter (int|string|array) hodnota nahradit do zástupného symbolu. Mnoho hodnot může být předán pouhým předáním více argumentů v sprintf () – jako způsobem. Alternativně může být druhým argumentem pole obsahující hodnoty jako ve funkci VSPRINTF() PHP. Je třeba dbát na to, aby tento parametr neumožňoval přímý vstup uživatele, což by umožnilo manipulaci s libovolným dotazem s více zástupnými symboly. Hodnoty nelze uniknout SQL.

zástupné symboly

parametr dotazu pro prepare přijímá zástupné symboly podobné sprintf (). Podporovány jsou formáty %s (string), %d (integer) a %f (float). (Zástupné symboly %s a %d jsou k dispozici od přidání funkce do jádra ve verzi 2.3, %f je k dispozici pouze od verze 3.3.) Jakékoli jiné znaky % mohou způsobit chyby při analýze, pokud nejsou uniknuty. Všechny % znaky uvnitř SQL řetězců literály, včetně jako zástupné znaky, musí být double – % unikl jako %%. Všechny %d, %f A %s mají být ponechány bez uvozovek v řetězci dotazu. Všimněte si, že zástupný symbol %d přijímá pouze celá čísla, takže nemůžete předat čísla, která mají hodnoty čárky, přes %d. Pokud potřebujete hodnoty čárek, použijte %f jako float.

Příklady

Přidat Meta klíč => hodnota dvojice „Harriet Pořekadla“ => „WordPress databáze rozhraní je jako nedělní Ráno: Snadné.“k příspěvku 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 ) );

provedeno v WordPress add_meta().

stejný dotaz pomocí syntaxe podobné vsprintf ().

$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) ) );

Všimněte si, že v tomto příkladu hodnoty zabalíme do pole. To může být užitečné, když neznáme počet argumentů, které musíme předat do běhu.

Všimněte si, že se nemusíte starat o citování řetězců. Místo předávání proměnných přímo do SQL dotazu použijte %s zástupný symbol pro řetězce, %d zástupný symbol pro celá čísla a %f jako zástupný symbol pro plováky. Můžete předat tolik hodnot, kolik chcete, každý jako nový parametr v metodě prepare().

zobrazit a skrýt chyby SQL

můžete zapnout a vypnout opakování chyb pomocí show_errors a hide_errors.

<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>

můžete také vytisknout chybu (pokud existuje) generovanou nejnovějším dotazem s print_error.

<?php $wpdb->print_error(); ?>

Poznámka: Pokud používáte WordPress Vícemístné, musíte definovat DIEONDBERROR konstantní pro chyby databáze se zobrazí jako tak:
<?php define( 'DIEONDBERROR', true ); ?>

Získání Sloupec Informace

můžete načíst informace o sloupcích poslední výsledek dotazu s get_col_info. To může být užitečné, když funkce vrátí objekt, jehož vlastnosti neznáte. Funkce zobrazí požadované informace ze zadaného sloupce nebo pole s informacemi o všech sloupcích z výsledku dotazu, pokud není zadán žádný sloupec.

<?php $wpdb->get_col_info('type', offset); ?>

zadejte (řetězec), jaké informace chcete načíst. Může převzít některou z následujících hodnot (seznam převzatý z dokumentů ezSQL). Výchozí název.

  • název-název sloupce. Default.
  • tabulka – název tabulky, sloupec patří k
  • max_length – maximální délka sloupec
  • not_null – 1 pokud je sloupec nesmí být NULL
  • primary_key – 1 pokud je sloupec primární klíč
  • unique_key – 1 pokud je sloupec unikátní klíč
  • multiple_key – 1 pokud je sloupec typu non-unikátní klíč
  • číselné – 1 pokud je sloupec numerický
  • blob – 1 pokud je sloupec typu BLOB
  • typ – typ sloupce
  • unsigned – 1 pokud je sloupec unsigned
  • zerofill – 1 pokud je sloupec je nulový-naplněné

offset (integer) určuje sloupec, ze kterého se má načíst informace (přičemž 0 je první sloupec). Výchozí hodnota -1.

  • – načíst informace ze všech sloupců. Výstup jako pole. Default.
  • nezáporné celé číslo-načte informace ze zadaného sloupce (0 je první).

vymazání mezipaměti

můžete vymazat mezipaměť výsledků SQL pomocí flush.

<?php $wpdb->flush(); ?>

tím se vymaže $wpdb->last_result, $wpdb->last_query a $wpdb->col_info.

Proměnné Třídy

$show_errors, Zda je nebo není Chyba ozvěnou je zapnutý. Výchozí hodnota TRUE. $num_queries počet dotazů, které byly provedeny. $last_query Poslední dotaz, který byl proveden. $last_error nejnovější chybový text generovaný MySQL. $dotazy všechny dotazy spuštěné v databázi a jejich doby zastavení můžete uložit nastavením konstanty SAVEQUERIES na hodnotu TRUE (tato konstanta je výchozí na hodnotu FALSE). Pokud je SAVEQUERIES pravdivý, vaše dotazy budou uloženy v této proměnné jako pole. $last_result nejnovější výsledky dotazu. $col_info informace o sloupci pro nejnovější výsledky dotazu. Viz Získání Informací O Sloupci. $insert_id ID generované pro sloupec AUTO_INCREMENT nejnovějším dotazem INSERT. $num_rows počet řádků vrácených posledním dotazem. $ prefix přiřazená předpona tabulky WordPress pro web. $base_prefix původní předpona, jak je definována v wp-config.Linux. Pro více stránek: použijte, pokud chcete získat předponu bez připojeného čísla blogu.

Multi-Site Proměnné

Pokud používáte Multi-Stránky, budete mít také přístup k následujícím:

$blogid id aktuální stránky (blog). $siteid id aktuální sítě (dříve „site“). WordPress v současné době podporuje pouze jednu síť na instalaci pro více webů, ale to by se mohlo v budoucnu změnit. Další informace naleznete v následujícím textu:

  • WordPress: rozdíl mezi site_id a blog_id?
  • http://stackoverflow.com/a/4189358/1924128 – další dobrá odpověď na stejnou otázku.

tabulky

databázové tabulky WordPress jsou snadno odkazovány ve třídě wpdb.

$příspěvky tabulka příspěvků. $postmeta Meta obsah (aka vlastní pole) tabulka. $Komentáře tabulka komentářů. $commentmeta tabulka obsahuje další informace o komentářích. $termmeta tabulka termmeta obsahuje termín meta hodnoty. $podmínky tabulka podmínek obsahuje ‚popis‘ kategorií, kategorií odkazů, značek. $term_taxonomy tabulka term_taxonomy popisuje různé taxonomie (třídy termínů). Kategorie, kategorie odkazů a značky jsou taxonomie. $term_relationships termín vztahy tabulka obsahuje vazbu mezi pojmem a předmětem, který používá tento termín, což znamená, že soubor přejděte na každou Kategorii použít pro každý Post. $users tabulka uživatelů. $usermeta tabulka usermeta obsahuje další informace o uživateli, jako jsou přezdívky, popisy a oprávnění. $odkazy tabulka odkazů. $options tabulka možností.

vícemístné tabulky

tyto tabulky se používají pouze ve vícemístných instalacích.

$ blogy tabulka blogů obsahuje seznam samostatných blogů(webů), které byly nastaveny v rámci sítě (sítí). $registrace tabulka registrací. $site tabulka stránek obsahuje seznam sítí (dříve známých jako „weby“ v WPMU), které jsou nastaveny v instalaci (obvykle je v této tabulce uveden pouze jeden web). $sitemeta tabulka Network Options (Site Meta) obsahuje všechny možnosti, které jsou použitelné pro celou instalaci na více místech. $sitecategories tabulka kategorií stránek. $registration_log tabulku registračního protokolu. $blog_versions tabulka verzí blogu.

zdrojový soubor

wpdb() se nachází v wp-includes/wp-db.php.

související

  • funkce člena: wpdb:: esc_like () – Escape LIKE příkazy před použitím v SQL.

články

  • článek: smyčka-základní přehled jejího použití dotazu v rámci smyčky WordPress.
  • článek: Přehled dotazů-vysvětlení, jak určit, které dotazy generují WordPress.
  • Článek: Přizpůsobení Dotazy přes Háček
  • Článek: Zobrazit Články MYSQL dotaz pomocí vlastní
  • Článek: Vybudovat pokročilé dotazy na Taxonomií
  • Článek: Vytvořit vlastní dotaz pomocí Odsazení a stránkování

Dokumentaci Kódu

  • Třída: WP_Query – Podrobný Přehled třídy WP_Query
  • Třídy: WP_Comment_Query – Class za komentář-související dotazy
  • Třída: WP_User_Query – Třída pro uživatelské dotazy týkající se
  • Objektu: $wpdb – Přehled o využití $wpdb objekt
  • Funkce: set_query_var()
  • Funkce: get_query_var()
  • Funkce query_posts() – Vytvořit další vlastní dotaz
  • Funkce: get_post() – Vezměte ID položky a vrátit se záznamy v databázi pro daný článek
  • Funkce: get_posts() – Specializované funkce, která vrací pole položek
  • Funkce: get_pages() – specializované funkce, která vrací pole stránky
  • Funkce: have_posts() – podmínku, která určuje, zda dotaz vrátil článek
  • Funkce: the_post() – Používá se pro automatické nastavení smyčky po dotazu
  • Funkce: rewind_posts() – Vymaže aktuální smyčky
  • Funkce: setup_postdata() – Nastaví data pro jeden výsledek dotazu v rámci smyčky
  • Funkce: wp_reset_postdata() – Obnoví předchozí dotaz (obvykle po smyčce, do další smyčky)
  • Funkce: wp_reset_query()
  • Funkce: is_main_query() – Zajistí, že dotaz, který je měněn je pouze hlavní dotaz
  • Akční Háček: pre_get_posts – Změna WordPress dotazy před tím, než jsou provedeny
  • Akční Háček: the_post – Upravit příspěvek objektu po dotazu
  • Filtr Háček: found_posts – Změní hodnotu objektu found_posts WP_Query

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Previous post Krmení Děťátko
Next post Chicago White Sox: Brad Stranu by nebylo špatné zvednout