Lingue: English • Italiano • 日本語 Русский • 中文(简体) • 中文(繁體) • 한국어 • (Aggiungi la tua lingua)
Parlando al Database: wpdb Classe
WordPress definisce una classe chiamata wpdb, che contiene una serie di funzioni per interagire con un database. Il suo scopo principale è quello di fornire un’interfaccia con il database WordPress, ma può essere utilizzato per comunicare con qualsiasi altro database appropriato. Il codice sorgente della classe è vagamente basato sulla classe ezSQL; scritto e mantenuto da Justin Vincent
Utilizzando l’oggetto w wpdb
Attenzione: i metodi nella classe wpdb()
non dovrebbero essere chiamati direttamente. Usa invece l’oggetto globale $wpdb
!
WordPress fornisce una variabile oggetto globale, $wpdb
, che è un’istanza della classe wpdb definita in /wp-include/wp-db.PHP. Per impostazione predefinita, $wpdb
viene istanziato per parlare con il database di WordPress. Per accedere a $wpdb
nel codice PHP di WordPress, dichiarare $wpdb
come variabile globale utilizzando global keyword
o utilizzare superglobal $GLOBALS
nel modo seguente:
// 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 );
L’oggetto $wpdb
non è limitato alle tabelle predefinite create da WordPress; può essere utilizzato per leggere i dati da qualsiasi tabella nel database di WordPress (come le tabelle dei plugin personalizzati). Ad esempio, per SELEZIONARE alcune informazioni da una tabella personalizzata chiamata “mytable”, è possibile effettuare le seguenti operazioni.
$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );
L’oggetto $wpdb
può parlare con qualsiasi numero di tabelle, ma solo con un database alla volta; per impostazione predefinita il database di WordPress. Nel raro caso in cui sia necessario connettersi a un altro database, sarà necessario istanziare il proprio oggetto dalla classe wpdb
con le proprie informazioni di connessione al database. Per configurazioni estremamente complicate con molti database, considerare invece l’utilizzo di hyperdb.
Un avviso
Alcune delle funzioni di questa classe prendono un’istruzione SQL come input. È necessario eseguire l’escape SQL di tutti i valori non attendibili incorporati nella query SQL per prevenire attacchi SQL injection. Controllare la documentazione per vedere se la funzione che si prevede di utilizzare escape SQL per voi o si aspetta che sia pre-escape.
Per ulteriori informazioni sull’escape SQL in WordPress, vedere la sezione intitolata Proteggere le query dagli attacchi di SQL Injection di seguito.
SELEZIONARE una variabile
La funzione get_var
restituisce una singola variabile dal database. Sebbene venga restituita solo una variabile, l’intero risultato della query viene memorizzato nella cache per un uso successivo. Restituisce NULL se non viene trovato alcun risultato.
<?php $wpdb->get_var( 'query', column_offset, row_offset ); ?>
query (stringa) La query che si desidera eseguire. Impostando questo parametro sunull
si restituirà la variabile specificata dai risultati memorizzati nella cache della query precedente. column_offset (integer) La colonna desiderata (0 è la prima). Il valore predefinito è 0. row_offset (integer) La riga desiderata (0 è la prima). Il valore predefinito è 0.
Esempi
Recuperare e visualizzare il numero di utenti.
<?php$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );echo "<p>User count is {$user_count}</p>";?>
Recupera e visualizza la somma di un valore di campo personalizzato.
<?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>";?>
SELEZIONARE una riga
Per recuperare un’intera riga da una query, utilizzare get_row
. La funzione può restituire la riga come oggetto, un array associativo o come array numericamente indicizzato. Se più di una riga viene restituita dalla query, solo la riga specificata viene restituita dalla funzione, ma tutte le righe vengono memorizzate nella cache per un uso successivo. Restituisce NULL se non viene trovato alcun risultato, considerare questo quando si utilizza il valore restituito negli argomenti, vedere l’esempio seguente.
<?php $wpdb->get_row('query', output_type, row_offset); ?>
query (stringa) La query che si desidera eseguire. output_type Una delle tre costanti predefinite. Il valore predefinito è OBJECT.
- OGGETTO-il risultato verrà emesso come oggetto.
- ARRAY_A-result verrà emesso come array associativo.
- ARRAY_N-il risultato verrà emesso come array numericamente indicizzato.
row_offset (integer) La riga desiderata (0 è la prima). Il valore predefinito è 0.
Esempi
Ottieni tutte le informazioni sul Link 10.
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" );
Le proprietà dell’oggetto $mylink
sono i nomi delle colonne del risultato della query SQL (in questo esempio tutte le colonne della tabella $wpdb->links
, ma è possibile eseguire query solo per colonne specifiche).
echo $mylink->link_id; // prints "10"
Al contrario, utilizzando
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A );
si otterrebbe un array associativo:
echo $mylink; // prints "10"
e
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N );
risulterebbe in un array numericamente indicizzato:
echo $mylink; // prints "10"
Se non ci sono record con ID 10 nella tabella dei collegamenti, verrà restituito null
. Il seguente sarebbe quindi falso:
if ( null !== $mylink ) { // do something with the link return true;} else { // no link found return false;}
SELEZIONARE una colonna
Per SELEZIONARE una colonna, utilizzare get_col
. Questa funzione emette un array unidimensionale. Se più di una colonna viene restituita dalla query, solo la colonna specificata verrà restituita dalla funzione, ma l’intero risultato viene memorizzato nella cache per un uso successivo. Restituisce un array vuoto se non viene trovato alcun risultato.
<?php $wpdb->get_col( 'query', column_offset ); ?>
query (string) la query che si desidera eseguire. Impostando questo parametro sunull
si restituirà la colonna specificata dai risultati memorizzati nella cache della query precedente. column_offset (integer) La colonna desiderata (0 è la prima). Il valore predefinito è 0.
Esempi
Per questo esempio, supponiamo che il blog sia dedicato alle informazioni sulle automobili. 1969 Ford Mustang), e tre campi personalizzati, produttore, modello e anno, sono assegnati a ciascun post. In questo esempio verranno visualizzati i titoli dei post, filtrati da un particolare produttore (Ford) e ordinati per modello e anno.
Il modulo get_col della classe wpdb viene utilizzato per restituire un array di tutti gli ID post che soddisfano i criteri e ordinati nell’ordine corretto. Quindi viene utilizzato un costrutto foreach per scorrere quell’array di ID post, visualizzando il titolo di ciascun post. Si noti che l’SQL per questo esempio è stato creato da 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} }?>
Questo esempio elenca tutti i post che contengono un particolare campo personalizzato, ma ordinati in base al valore di un secondo campo personalizzato.
<?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}}?>
SELEZIONA Risultati generici
I risultati generici di più righe possono essere estratti dal database con get_results
. La funzione restituisce l’intero risultato della query come array. Ogni elemento di questo array corrisponde a una riga del risultato della query e, come get_row
, può essere un oggetto, un array associativo o un array numerato. Se non vengono trovate righe corrispondenti o se si verifica un errore nel database, il valore restituito sarà un array vuoto. Se la stringa query query è vuota o si passa un outp output_type non valido, verrà restituito NULL.
<?php $wpdb->get_results( 'query', output_type ); ?>
query (stringa) La query che si desidera eseguire. output_type Una delle quattro costanti predefinite. Il valore predefinito è OBJECT. Vedere SELEZIONARE una riga e i relativi esempi per ulteriori informazioni.
- OBJECT-result verrà emesso come una matrice numericamente indicizzata di oggetti row.
- OBJECT_K – il risultato verrà emesso come un array associativo di oggetti riga, utilizzando i valori della prima colonna come chiavi (i duplicati verranno scartati).
- ARRAY_A – result verrà emesso come una matrice indicizzata numericamente di array associativi, utilizzando i nomi delle colonne come chiavi.
- ARRAY_N – il risultato verrà emesso come un array numericamente indicizzato di array numericamente indicizzati.
Poiché questa funzione utilizza la funzione query wpdb- > query (), tutte le variabili di classe sono impostate correttamente. Il conteggio dei risultati per una query ‘SELECT’ verrà memorizzato in num wpdb->num_rows.
Esempi
Ottieni gli ID e i titoli di tutte le Bozze dall’Utente 5 e riecheggia i Titoli.
$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;}
Ottenere tutte le informazioni sulle bozze da parte dell’utente 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}?>
INSERISCI riga
Inserisci una riga in una tabella.
<?php $wpdb->insert( $table, $data, $format ); ?>
tabella (stringa) Il nome della tabella in cui inserire i dati. dati (array) Dati da inserire (nella colonna = > coppie di valori). Entrambe le colonne data data e i valori data data dovrebbero essere “raw” (nessuno dei due dovrebbe essere SQL escape). format (array / string) (opzionale) Una serie di formati da mappare a ciascuno dei valori in data data. Se string, quel formato verrà utilizzato per tutti i valori in data data. Se omessi, tutti i valori in data data saranno trattati come stringhe se non diversamente specificato in wpdb:: fiel field_types.
Valori di formato possibili: % s come stringa; % d come intero( numero intero); e %f come float. (Vedi sotto per maggiori informazioni.)
Dopo l’inserimento, è possibile accedere all’ID generato per la colonna AUTO_INCREMENT con:
$wpdb->insert_id
Questa funzione restituisce false se la riga non può essere inserita. Altrimenti, restituisce il numero di righe interessate (che sarà sempre 1).
Nota: la porzione di valore della colonna del parametro data= >coppie di valori deve essere scalare. Se si passa un array (o un oggetto) come valore da inserire si genererà un avviso simile a “mysql_real_escape_string () si aspetta che il parametro 1 sia string, array dato sulla riga 880 nel file /var/www/html/wp-include/wp-db.PHP”.
Esempi
Inserire due colonne in una riga, il primo valore è una stringa e il secondo un numero:
$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );
SOSTITUISCI riga
Sostituisci una riga in una tabella se esiste o inserisci una nuova riga in una tabella se la riga non esisteva già.
<?php $wpdb->replace( $table, $data, $format ); ?>
tabella (stringa) Il nome della tabella in cui sostituire i dati. dati (array) Dati da sostituire (in colonna => coppie di valori). Entrambe le colonne data data e i valori data data dovrebbero essere “raw” (nessuno dei due dovrebbe essere SQL escape). format (array / string) (opzionale) Una serie di formati da mappare a ciascuno dei valori in data data. Se string, quel formato verrà utilizzato per tutti i valori in data data. Se omessi, tutti i valori in data data saranno trattati come stringhe se non diversamente specificato in wpdb:: fiel field_types.
Valori di formato possibili: % s come stringa; % d come intero( numero intero); e %f come float. (Vedi sotto per maggiori informazioni.)
Se la lunghezza di un elemento stringa nel parametro array data array è più lunga della lunghezza definita nella tabella del database MySQL, l’insert fallirà, questa funzione restituirà false, ma last wpdb- >last_error non sarà impostato su un messaggio descrittivo. È necessario assicurarsi che i dati che si desidera inserire si inseriscano nel database-non presumere che MySQL troncerà i dati.
Dopo la sostituzione, è possibile accedere all’ID generato per la colonna AUTO_INCREMENT con:
$wpdb->insert_id
Questa funzione restituisce un conteggio per indicare il numero di righe interessate. Questa è la somma delle righe eliminate e inserite. Se il conteggio è 1 per una sostituzione a riga singola, è stata inserita una riga e nessuna riga è stata eliminata. Se il conteggio è maggiore di 1, una o più righe precedenti sono state eliminate prima dell’inserimento della nuova riga. È possibile che una singola riga sostituisca più di una vecchia riga se la tabella contiene più indici univoci e la nuova riga duplica i valori per diverse vecchie righe in diversi indici univoci.
Questa funzione restituisce false se una riga esistente non può essere sostituita e una nuova riga non può essere inserita.
Esempi
Sostituisci una riga, il primo valore è l’id riga, il secondo una stringa e il terzo un numero:
$wpdb->replace( 'table', array( 'indexed_id' => 1,'column1' => 'value1', 'column2' => 123 ), array( '%d','%s', '%d' ) );
AGGIORNA righe
Aggiorna una riga nella tabella. Restituisce false in caso di errori o il numero di righe interessate in caso di esito positivo.
<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>
tabella (stringa) Il nome della tabella da aggiornare. dati (array) Dati da aggiornare (in colonna => coppie di valori). Entrambe le colonne data data e i valori data data dovrebbero essere “raw” (nessuno dei due dovrebbe essere SQL escape). Ciò significa che se si utilizzano GET o POST data potrebbe essere necessario utilizzare stripslashes() per evitare che le barre finiscano nel database. where (array) Una matrice denominata di clausole WHERE (nella colonna = > coppie di valori). Più clausole saranno unite con ANDs. Sia le colonne where where che i valori where where dovrebbero essere “grezzi”. format (array / string) (opzionale) Una serie di formati da mappare a ciascuno dei valori in data data. Se string, quel formato verrà utilizzato per tutti i valori in data data. where_format (array|string) (opzionale) Una matrice di formati da mappare a ciascuno dei valori in where where. Se string, quel formato verrà utilizzato per tutti gli elementi in where where.
Valori di formato possibili: % s come stringa; % d come intero (numero intero) e % f come float. (Vedi sotto per maggiori informazioni.) Se omesso, tutti i valori in where where saranno trattati come stringhe.
Valori di ritorno: Questa funzione restituisce il numero di righe aggiornate, o false se c’è un errore. Tieni presente che se i dati matches corrispondono a ciò che è già nel database, nessuna riga verrà aggiornata, quindi verrà restituito 0. A causa di questo, probabilmente si dovrebbe controllare il ritorno con false === $result
Esempi
Aggiornare una riga, dove l’ID è 1, il valore nella prima colonna è una stringa e il valore nella seconda colonna è un numero:
$wpdb->update( 'table', array( 'column1' => 'value1',// string'column2' => 'value2'// integer (number) ), array( 'ID' => 1 ), array( '%s',// value1'%d'// value2), array( '%d' ) );
Attenzione: %d
non può trattare con la virgola valori – se non si utilizza pieno di numeri, stringhe/%s.
ELIMINA righe
La funzione Elimina è stata aggiunta in WordPress 3.4.0 e può essere utilizzata per eliminare righe da una tabella. L’utilizzo è molto simile a update e insert. Restituisce il numero di righe aggiornate o false in caso di errore.
Utilizzo
<?php $wpdb->delete( $table, $where, $where_format = null ); ?>
Parametri
table table (string) (richiesto) Nome della tabella. Default: None where where (array) (required) Un array denominato di clausole WHERE (nella colonna -> coppie di valori). Più clausole saranno unite con ANDs. Sia le colonne where where che i valori where where dovrebbero essere “grezzi”. Predefinito: None where where_format (string/array) (opzionale) Una matrice di formati da mappare a ciascuno dei valori in where where. Se una stringa, tale formato verrà utilizzato per tutti gli elementi in where where. Un formato è uno di “% d”, “%f”, “%s ” (integer, float, string; vedi sotto per maggiori informazioni). Se omesso, tutti i valori in where where saranno trattati come stringhe se non diversamente specificato in wpdb:: fiel field_types. Default :null
Esempi
// Default usage.$wpdb->delete( 'table', array( 'ID' => 1 ) );// Using where formatting.$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );
Esecuzione di query generali
La funzione query
consente di eseguire qualsiasi query SQL sul database WordPress. È meglio utilizzato quando è necessario eseguire query SQL specifiche, personalizzate o altrimenti complesse. Per ulteriori query di base, come la selezione di informazioni da una tabella, vedere le altre funzioni wpdb
sopra come get_results, get_var, get_row or get_col
.
Sintassi generale
<?php $wpdb->query('query'); ?>
query (string) La query SQL che si desidera eseguire.
Questa funzione restituisce un valore intero che indica il numero di righe interessate/selezionate per SELECT, INSERT, DELETE, UPDATE, ecc. Per le istruzioni CREATE, ALTER, TRUNCATE e DROP SQL, (che influenzano intere tabelle invece di righe specifiche) questa funzione restituisce TRUE
in caso di successo. Se si verifica un errore MySQL, la funzione restituirà FALSE
. Si noti che poiché sia 0 che FALSE
possono essere restituiti per le query di riga, è necessario fare attenzione quando si controlla il valore restituito. Utilizzare l’operatore identity ( = = = ) per verificare la presenza di errori (ad esempio, false = = = result result) e se le righe sono state interessate (ad esempio, 0 = = = result result).
Esempi
Elimina la meta chiave e il valore “gargle” dal Post 13. (Aggiungeremo il metodo ‘prepare’ per assicurarci di non avere a che fare con un’operazione illegale o con personaggi illegali):
$wpdb->query( $wpdb->prepare( " DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", 13, 'gargle' ));
Eseguito in WordPress da delete_post_meta()
.
Imposta il genitore di Pagina 15 a Pagina 7.
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %dWHERE ID = %dAND post_status = %s", 7, 15, 'static') );
Proteggere le query dagli attacchi SQL Injection
Per una panoramica più completa dell’escape SQL in WordPress, vedere Convalida dei dati del database. È una lettura obbligata per tutti i contributori di codice WordPress e gli autori di plugin.
Tutti i dati nelle query SQL devono essere sottoposti a escape SQL prima che la query SQL venga eseguita per prevenire attacchi SQL injection. Il metodo prepare
esegue questa funzionalità per WordPress, che supporta sia una sintassi simile a sprintf () che a vsprintf ().
Si prega di notare: Come di 3.5, wpdb::prepare () applica un minimo di 2 argomenti.
<?php $sql = $wpdb->prepare( 'query' , value_parameter ); ?>
query (string) La query SQL che si desidera eseguire, con segnaposto (vedi sotto). value_parameter (int / string / array) Il valore da sostituire nel segnaposto. Molti valori possono essere passati semplicemente passando più argomenti in modo simile a sprintf (). In alternativa, il secondo argomento può essere un array contenente i valori come nella funzione vsprintf () di PHP. Si deve prestare attenzione a non consentire l’input diretto dell’utente a questo parametro, che consentirebbe la manipolazione dell’array di qualsiasi query con più segnaposto. I valori non possono essere sottoposti a escape SQL.
Segnaposto
Il parametro di query per prepare accetta segnaposto simili a sprintf (). I formati %s (stringa), %d (intero) e % f (float) sono supportati. (I segnaposto %s e % d sono disponibili da quando la funzione è stata aggiunta a core nella versione 2.3, %f è disponibile solo dalla versione 3.3.) Qualsiasi altro carattere %
può causare errori di analisi a meno che non siano sfuggiti. Tutti i caratteri %
all’interno dei letterali delle stringhe SQL, inclusi i caratteri jolly, devono essere con escape doppio-% come %%
. Tutti %d, % f e %s devono essere lasciati non quotati nella stringa di query. Nota che il segnaposto % d accetta solo numeri interi, quindi non puoi passare numeri che hanno valori di virgola tramite %d. Se hai bisogno di valori di virgola, usa %f come float.
Esempi
Aggiungi Meta key => coppia di valori “Harriet’s Adages” = > “L’interfaccia del database di WordPress è come la domenica mattina: facile.”per inviare 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 ) );
Eseguito in WordPress da add_meta()
.
La stessa query che utilizza la sintassi simile a 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) ) );
Si noti che in questo esempio imballiamo i valori insieme in un array. Questo può essere utile quando non conosciamo il numero di argomenti che dobbiamo passare fino al runtime.
Nota che non devi preoccuparti di citare le stringhe. Invece di passare le variabili direttamente nella query SQL, utilizzare un segnaposto %s
per le stringhe, un segnaposto %d
per gli interi e %f come segnaposto per i float. Puoi passare tutti i valori che vuoi, ognuno come un nuovo parametro nel metodo prepare()
.
Mostra e nascondi errori SQL
È possibile attivare e disattivare l’eco degli errori con show_errors
e hide_errors
, rispettivamente.
<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>
È inoltre possibile stampare l’errore (se presente) generato dalla query più recente con print_error
.
<?php $wpdb->print_error(); ?>
Nota: se si esegue WordPress Multisito, è necessario definire la costante DIEONDBERROR affinché gli errori del database vengano visualizzati in questo modo: <?php define( 'DIEONDBERROR', true ); ?>
Ottenere informazioni sulla colonna
È possibile recuperare informazioni sulle colonne del risultato della query più recente con get_col_info
. Questo può essere utile quando una funzione ha restituito un OGGETTO di cui non si conoscono le proprietà. La funzione emetterà le informazioni desiderate dalla colonna specificata o un array con informazioni su tutte le colonne dal risultato della query se non viene specificata alcuna colonna.
<?php $wpdb->get_col_info('type', offset); ?>
digitare (stringa) Quali informazioni si desidera recuperare. Può assumere uno dei seguenti valori (elenco tratto dai documenti ezSQL). Il valore predefinito è name.
- nome-nome colonna. Predefinito.
- nome – tabella della tabella la colonna appartiene a
- max_length – lunghezza massima della colonna
- not_null – 1 se la colonna non può essere NULL
- primary_key – 1 se la colonna è una chiave primaria
- unique_key – 1 se la colonna è un unico tasto
- multiple_key – 1 se la colonna non è un unico tasto
- numerico – 1 se la colonna è di tipo numerico
- blob – 1 se la colonna è un BLOB
- – il tipo di colonna
- unsigned – 1 se la colonna è unsigned
- zerofill – 1 se la colonna è azzerata
offset (integer) Specifica la colonna da cui recuperare le informazioni (con 0 come prima colonna). Il valore predefinito è -1.
- -1 – Recuperare informazioni da tutte le colonne. Uscita come matrice. Predefinito.
- Numero intero non negativo: recupera le informazioni dalla colonna specificata (0 è il primo).
Cancellazione della cache
È possibile cancellare la cache dei risultati SQL con flush
.
<?php $wpdb->flush(); ?>
Questo cancella $wpdb->last_result
, $wpdb->last_query
e $wpdb->col_info
.
Variabili di classe
show mostra se l’eco degli errori è attivata o meno. Il valore predefinito è TRUE. num num_queries Il numero di query che sono state eseguite. last last_query La query più recente che è stata eseguita. last last_error Il testo di errore più recente generato da MySQL. queries query È possibile salvare tutte le query eseguite sul database e i loro tempi di arresto impostando la costante SAVEQUERIES su TRUE (questa costante è predefinita su FALSE). Se SAVEQUERIES è TRUE, le query verranno memorizzate in questa variabile come array. last last_result I risultati della query più recenti. col col_info Le informazioni sulla colonna per i risultati della query più recenti. Vedere Ottenere informazioni sulla colonna. inser insert_id ID generato per una colonna AUTO_INCREMENT dalla query INSERT più recente. num num_rows Il numero di righe restituite dall’ultima query. $prefix Il prefisso della tabella WordPress assegnato per il sito. bas base_prefix Il prefisso originale come definito in wp-config.PHP. Per il multi-sito: utilizzare se si desidera ottenere il prefisso senza il numero del blog aggiunto.
Variabili multi-sito
Se si utilizza Multi-Sito, si ha anche accesso a quanto segue:
blog blogid L’id del sito corrente (blog). $siteid L’id della rete corrente (precedentemente “sito”). WordPress attualmente supporta solo una rete per installazione multi-sito, ma ciò potrebbe cambiare in futuro. Vedere quanto segue per ulteriori informazioni:
- WordPress: differenza tra site_id e blog_id?
- http://stackoverflow.com/a/4189358/1924128 – Un’altra buona risposta alla stessa domanda.
Tabelle
Le tabelle del database di WordPress sono facilmente referenziate nella classe wpdb
.
posts pubblica la tabella dei messaggi. post postmeta La tabella Meta Content (ovvero Campi personalizzati). $commenti La tabella dei commenti. $commentmeta La tabella contiene ulteriori informazioni sui commenti. term termmeta La tabella termmeta contiene i meta valori del termine. $termini La tabella dei termini contiene la “descrizione” di categorie, categorie di link, Tag. term term_taxonomy La tabella term_taxonomy descrive le varie tassonomie (classi di termini). Le categorie, le categorie di collegamento e i tag sono tassonomie. term term_relationships La tabella delle relazioni term contiene il collegamento tra il termine e l’oggetto che utilizza quel termine, il che significa che questo punto di file per ogni categoria utilizzata per ogni post. $utenti La tabella degli Utenti. $usermeta La tabella usermeta contiene informazioni aggiuntive sull’utente, come soprannomi, descrizioni e autorizzazioni. links collega La tabella dei collegamenti. $opzioni La tabella delle opzioni.
Tabelle multisito
Queste tabelle sono utilizzate solo in installazioni multisito.
blogs blogs La tabella Blogs contiene un elenco dei blog (siti) separati che sono stati impostati all’interno della rete(s). $iscrizioni La tabella delle iscrizioni. site site La tabella Site contiene un elenco delle reti (precedentemente note come “siti” in WPMU) configurate nell’installazione (di solito c’è un solo sito elencato in questa tabella). sit sitemeta La tabella Opzioni di rete (Meta sito) contiene tutte le opzioni applicabili all’intera installazione multisito. $sitecategories La tabella delle categorie del sito. regist registration_log La tabella del registro di registrazione. blog blog_versions La tabella delle versioni del blog.
File sorgente
wpdb() si trova in wp-includes/wp-db.php
.
Correlato
- Funzione membro: wpdb::esc_like() – Escape COME istruzioni prima dell’uso in SQL.
Articoli
- Articolo: Il ciclo – Una panoramica di base del suo utilizzo di query all’interno del ciclo di WordPress.
- Articolo: Query Overview-Spiegazione di come determinare quali query generano WordPress.
- Articolo: Personalizzazione di Query tramite Gancio
- Articolo: Articoli MYSQL query utilizzando personalizzato
- Articolo: Costruire query avanzate su Tassonomie
- Articolo: Costruire query personalizzata utilizzando l’Offset e la paginazione
la Documentazione di Codice
- Classe WP_Query – Panoramica Dettagliata di classe WP_Query
- Classe: WP_Comment_Query – Classe di commento-query correlate
- Classe: WP_User_Query di Classe per l’utente-query correlate
- Oggetto: $wpdb – Panoramica sull’uso del $wpdb oggetto
- Funzione: set_query_var()
- Funzione: get_query_var()
- Funzione: query_posts() – Crea ulteriori query personalizzata
- Funzione: get_post() – Prendere un ID di un elemento e restituire i record nel database per l’articolo
- Funzione: get_posts() – Una specifica funzione che restituisce un array di elementi
- Funzione: get_pages() – Una specifica funzione che restituisce un array di pagine
- Funzione: have_posts() – Una condizione che determina se la query ha restituito un articolo
- Funzione: the_post() – Utilizzato per impostare automaticamente il ciclo dopo una query
- Funzione: rewind_posts () Cancella il loop di corrente
- Funzione: setup_postdata() – consente di impostare i dati per un singolo risultato di una query all’interno di un ciclo
- Funzione: wp_reset_postdata() – Ripristina la precedente query (di solito dopo un ciclo all’interno di un altro ciclo)
- Funzione: wp_reset_query()
- Funzione: is_main_query() – Assicura che la query che è cambiato è solo la query principale
- Azione Gancio: pre_get_posts – Modificare WordPress query prima di essere eseguiti
- Azione Gancio: the_post – Modificare l’oggetto post dopo query
- Filtro Gancio: found_posts – Cambia il valore dell’oggetto found_posts WP_Query