Con le query personalizzate è possibile effettuare qualsiasi lettura e / o manipolazione dei dati che si desidera. Immediatamente si apre un mondo di nuove possibilità.
Le funzionalità di base in WordPress vanno bene per le esigenze più semplici, ma cosa faresti se volessi implementare delle esigenze specifiche? Stai forse scrivendo un plugin? Allora dovresti imparare come puoi usare le query SQL in WordPress adesso! I riferimenti ufficiali possono essere trovati nel codice WordPress (query personalizzate e classe WPDB).
wpdb
ClasseQuesta classe globale di WordPress è la chiave per utilizzare le query. In effetti, ogni funzione utilizza questa classe.
domanda
La funzione query richiede una stringa contenente la query personalizzata. Il valore restituito è un numero intero corrispondente al numero di righe interessate / selezionate e falso quando si verifica un errore.
$ query = "SELEZIONA CONTO (mela) DA frutti"; $ Wpdb-> query ($ query);
get_results
Questa funzione ottiene più righe quando si esegue una query. Di default il risultato della funzione è un array.
$ query = "SELECT * FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' AND wtt.count = 0"; $ Wpdb-> get_results ($ query);
get_var
Ciò restituirà una variabile dal database, ma il risultato completo della query viene memorizzato nella cache per un utilizzo successivo. Restituisce NULL se non viene trovato alcun risultato.
$ query = "SELECT COUNT (*) FROM users"; $ Wpdb-> get_var ($ query);
get_row
Una riga completa verrà restituita come risultato della funzione, che può essere un oggetto, un array associativo o una matrice indicizzata numericamente. NULL è il risultato quando non vengono trovati dati corrispondenti. result_type
può essere OGGETTO
, ARRAY_A
o ARRAY_N
(oggetto, array associativo o matrice numerata). Offset è un numero intero con un valore predefinito di 0.
$ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ query, ARRAY_A, 3);
get_col
Per ottenere una colonna, usa questa funzione. L'output sarà una matrice dimensionale. Un array vuoto verrà restituito se non viene trovato alcun risultato. Il secondo parametro è l'offset della colonna.
$ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ query, 3);
Secondo il manuale di php.net:
"Loro [le query preparate] possono essere pensate come una sorta di modello compilato per l'SQL che un'applicazione vuole eseguire, che può essere personalizzata utilizzando parametri variabili."
È possibile proteggere le query SQL dagli attacchi di SQL injection. In breve i dati nelle query devono essere preceduti da escape SQL prima che la query venga eseguita per prevenire attacchi di tipo injection. Questo può essere fatto facilmente con il metodo di preparazione. Nell'esempio seguente, i valori '10', 'monkey' e 'apple' saranno sfuggiti quando usati in questo metodo.
// Uso: $ wpdb-> prepare ('query' [, value_parameter, value_parameter ...]); $ wpdb-> query ($ wpdb-> prepare ("INSERT INTO test_table (post_id, animale, cibo) VALORI (% d,% s,% s)", array (10, 'monkey', 'apple')))) ;
Puoi attivare e disattivare i messaggi di errore con show_errors
e hide_errors
funzioni, ma puoi anche stampare:
$ Wpdb-> show_errors (); $ Wpdb-> hide_errors ();
L'eliminazione della cache può essere effettuata con rossore
funzione.
$ Wpdb-> flush ();
$ wpdb-> insert ($ table, $ data, $ format); $ wpdb-> insert ('foods', array ('fruit' => 'apple', 'year' => 2012), array ('% s', '% d'));
I parametri utilizzati nell'ordine sono:
$ data
. Se non è presente, tutti i valori saranno considerati come stringhe$ wpdb-> update ('foods', array ('fruit' => 'apple', // stringa 'year' => 'value2' // intero (numero)), array ('ID' => 1), array ('% s', // valore1 '% d' // valore2), matrice ('% d'));
I parametri utilizzati nell'ordine sono:
È possibile ottenere informazioni sulle colonne del risultato più recente con questa funzione. Quando una funzione ha restituito un OGGETTO
e ci sono proprietà di cui non sai molto, questo può essere utile.
$ wpdb-> get_col_info ('tipo', offset);
nome
- nome colonna (questo è il valore predefinito)tavolo
- nome della tabella a cui appartiene la colonnalunghezza massima
- lunghezza massima della colonnanon nullo
- 1 se la colonna non può essere NULLLe tabelle del database WordPress possono essere referenziate in wpdb
classe. Questo è molto comodo in quanto i nomi delle tabelle possono essere diversi da quelli predefiniti. Ecco un elenco di riferimenti alle tabelle del database di WordPress:
$ Wpdb-> posti;
$ Wpdb-> postmeta;
$ Wpdb-> commenti;
$ Wpdb-> commentmeta;
$ Wpdb-> termini;
$ Wpdb-> term_taxonomy;
$ Wpdb-> term_relationships;
$ Wpdb-> utenti;
$ Wpdb-> usermeta;
$ Wpdb-> link;
$ Wpdb-> opzioni;
Si noti che non è necessario includere il prefisso, questo è il vantaggio qui dove il wpdb
la classe si prende cura di questo per noi.
Ce l'abbiamo! Un riferimento per le query personalizzate in WordPress, tutto in un unico posto per te.