Cu interogări personalizate puteți face orice citire și / sau manipulare de date dorită. În mod instantaneu se deschide o lume a noilor posibilități.
Funcțiile de bază ale WordPress sunt bune pentru cele mai simple nevoi, dar ce ați face dacă doriți să implementați anumite nevoi specifice? Poți scrie un plugin, poate? Apoi, ar trebui să înveți cum puteți folosi interogările SQL în WordPress chiar acum! Referințele oficiale pot fi găsite în Codex-ul WordPress (Custom Queries și clasa WPDB).
wpdb
ClasăAceastă clasă globală WordPress este cheia pentru utilizarea interogărilor. De fapt, fiecare funcție folosește această clasă.
întrebare
Funcția de interogare are nevoie de un șir care conține interogarea personalizată. Valoarea returnată este un număr întreg corespunzător numărului de rânduri afectate / selectate și false atunci când există o eroare.
$ query = "SELECT COUNT (măr) din fructe"; $ Wpdb-> interogare ($ query);
get_results
Această funcție are mai multe rânduri atunci când execută o interogare. În mod implicit, rezultatul funcției este o matrice.
$ interogare = "SELECT * FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' ȘI wtt.count = 0"; $ Wpdb-> get_results ($ interogare);
get_var
Aceasta va returna o variabilă din baza de date, dar rezultatul complet al interogării este stocat în cache pentru o utilizare ulterioară. Returnează NULL dacă nu se găsește niciun rezultat.
$ query = "SELECT COUNT (*) de la utilizatori"; $ Wpdb-> get_var ($ query);
get_row
Un rând complet va fi returnat ca urmare a funcției, care poate fi un obiect, o matrice asociativă sau o matrice indexată numeric. NULL este rezultatul când nu s-au găsit date potrivite. result_type
poate fi OBIECT
, ARRAY_A
sau ARRAY_N
(obiect, matrice asociativă sau matrice numerotată). Offset este un număr întreg cu o valoare implicită de 0.
$ interogare = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ interogare, ARRAY_A, 3);
get_col
Pentru a obține o coloană, utilizați această funcție. Ieșirea va fi o matrice dimensională. O matrice goală va fi returnată dacă nu se găsește niciun rezultat. Al doilea parametru este offsetul coloanei.
$ interogare = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ interogare, 3);
În conformitate cu manualul php.net:
"[Întrebările pregătite] pot fi considerate ca un tip de șablon compilat pentru SQL pe care o aplicație dorește să o execute, care poate fi personalizată utilizând parametri variabili".
Puteți proteja interogările SQL împotriva atacurilor de tip SQL. Datele scurte din interogări trebuie să fie scoase din SQL înainte ca interogarea să fie executată pentru a preveni atacurile prin injectare. Acest lucru se poate face cu ușurință prin metoda de pregătire. În exemplul următor, valorile "10", "maimuță" și "mere" vor fi scăpate atunci când sunt utilizate în această metodă.
// Utilizare: $ wpdb-> prepare ('interogare' [, parametru_valoare, valoare_parametru ...]); $ wpdb-> interogare ($ wpdb-> prepare ("INSERT INTO test_table (post_id, animal, food) VALORI (% d,% s,% s) ;
Puteți activa și dezactiva mesajele de eroare cu show_errors
și hide_errors
funcții, dar puteți de asemenea să imprimați:
$ Wpdb-> show_errors (); $ Wpdb-> hide_errors ();
Ștergerea memoriei cache poate fi făcută cu culoare
funcţie.
$ Wpdb-> flush ();
$ wpdb-> inserați ($ table, $ date, $ format); $ wpdb-> insert ('alimente', array ('fruit' => 'apple', 'year' => 2012), array ('% s', '% d'));
Parametrii utilizați în ordine sunt:
$ date
. Dacă nu este prezent, toate valorile vor fi tratate ca șiruri de caractere$ wpdb-> actualizare ('food', array ('fruct' => 'apple', // string 'year' => 'value2' // integer (number) array ('% s', // valoare1 '% d' // valoare2), array ('% d'));
Parametrii utilizați în ordine sunt:
Puteți obține informații despre coloanele celui mai recent rezultat cu această funcție. Când o funcție a returnat o OBIECT
și există proprietăți despre care nu știți prea multe, acest lucru poate fi util.
$ wpdb-> get_col_info ('tip', offset);
Nume
- numele coloanei (aceasta este valoarea implicită)masa
- numele tabelului din care face parte coloanalungime maxima
- lungimea maximă a coloaneinu nul
- 1 dacă coloana nu poate fi NULLTabelele de baze de date WordPress pot fi menționate în wpdb
clasă. Acest lucru este foarte convenabil deoarece numele tabelelor pot fi diferite de cele implicite. Iată o listă de referințe pentru tabelele bazei de date WordPress:
$ Wpdb-> posturi;
$ Wpdb-> postmeta;
$ Wpdb-> comentarii;
$ Wpdb-> commentmeta;
$ Wpdb-> termeni;
$ Wpdb-> term_taxonomy;
$ Wpdb-> term_relationships;
$ Wpdb-> utilizatori;
$ Wpdb-> usermeta;
$ Wpdb-> link-uri;
$ Wpdb-> opțiuni;
Rețineți că nu este necesar să includeți prefixul, acesta este beneficiul aici în cazul în care wpdb
clasa are grija de asta pentru noi.
Acolo o avem! O referință pentru interogări personalizate în WordPress, toate într-un singur loc pentru dvs..