Standardele de codare WordPress interogări baze de date și formatarea interogărilor SQL

În afară de rezumatul pe care vom oferi ca ultimul articol din această serie, aceasta este ultima explicație a standardelor de codificare WordPress pe care le vom acoperi în această serie.

Vom acoperi nuanțele interogărilor bazei de date și modul de formatare a SQL în contextul codului dvs..

Desigur, acest lucru nu ar fi fără setul propriu de restricții: în general, există API-uri care sunt deja disponibile, care ne pot împiedica să scriem SQL pe cont propriu; cu toate acestea, aceste API nu captează niciun caz pe care de fapt avem nevoie.

La urma urmei, cum pot dezvoltatorii care implementează API să știe exact ce și cum vom construi ceva?

În acest scop, vom examina API-urile disponibile pentru executarea interogărilor de baze de date, cum să le folosiți și apoi cum să ne definim propriile interogări atunci când interfața API este redusă.


Baze de întrebări în WordPress

După cum sa menționat în introducerea acestui articol, există un număr de API-uri care ne permit să realizăm propriile interogări fără a fi nevoie să scrieți SQL.

Motivul pentru care este important să vă familiarizați și să învățați aceste API-uri este ca codul pe care îl scrie să fie scris pe lângă nivelul de abstractizare oferit de WordPress pentru a vă asigura că interogările sunt cât mai optimizate posibil (având în vedere versiunea curentă).

În plus, crește probabilitatea ca orice cod pe care îl scrieți astăzi să fie compatibil cu versiunile viitoare ale WordPress în primul rând pentru că, din nou, este scris în raport cu nivelul de abstractizare oferit de WordPress.

Dacă schema de tabelă se modifică, parametrii hărțuiesc la diferite clase din SQL sau așa mai departe, nu trebuie să vă faceți griji pentru că API-ul va avea grijă de el.


Care sunt API-urile pentru interogări?

Și ce dacă sunteți interogările API pe care le definește WordPress?

  • WP_Query este destinat să fie folosit pentru a interoga informații despre orice tip de post și autorul, categoria, taxonomiile, tipul, statutul și atributele aferente.
  • WP_User_Query este destinat a fi folosit când trebuie să preluăm informații din tabelul utilizatorului și tabela usermeta. De asemenea, ne permite să lucrăm cu roluri, câmpuri personalizate și multe altele.

Există, de asemenea, alte metode WordPress API care fac foarte ușor să aperi chestii din diferite tabele de baze de date, dintre care unele nu necesită nici măcar un număr semnificativ de argumente:

  • get_post_meta preia meta date asociate cu un ID postat dat. Poate prelua toate datele meta sau valoarea pentru o anumită cheie.
  • get_comment_meta preia meta date asociate unui ID de comentariu dat. Poate prelua toate datele meta sau valoarea pentru o anumită cheie.
  • get_user_meta preluă meta date asociate unui ID de utilizator dat (începeți să vedeți o temă aici?). Poate prelua toate datele meta sau valoarea pentru o anumită cheie.

Rețineți că scopul acestui articol nu este să vă aruncați adânc în fiecare dintre aceste API-uri (și mai multe dintre acestea) - doar pentru a le face cunoscute celor care nu le-ați utilizat în trecut și pentru a li se oferi definiție scurtă cu privire la momentul când acestea pot fi utilizate.

în cele din urmă, aceste sunt API-urile pe care ar trebui să le examinați înainte de a scrie propriul dvs. SQL. Pentru ce merită, vorbesc din experiența de aici: Au fost momente în care am scris coduri (sau chiar postări pe blog) care au fost blocate deoarece nu foloseau cele mai bune practici pentru interogarea bazei de date.

Dar, așa cum am menționat anterior, aceste API-uri nu pot prezice toate cazuri în care trebuie să scriem interogările bazei noastre de date. În aceste situații, WordPress oferă un obiect care ne permite să interacționăm direct cu baza de date.


Totul despre $ wpdb

Asta ne aduce $ wpdb. In esenta, $ wpdb este un obiect disponibil în WordPress, care ne permite să interfaci direct cu baza de date. Aceasta înseamnă că suntem capabili să scriem SQL brut și să îl executăm împotriva bazei de date de bază.

În plus, putem selecta modul în care vrem ca datele să fie returnate: tabele, obiecte, uneori valori individuale și așa mai departe. De fapt, obiectul oferă posibilitatea de a efectua următoarele funcții:

  • SELECTAȚI variabile, rânduri, coloane și rezultate generice
  • INTRODUCE rânduri
  • ACTUALIZAȚI rânduri existente

Poate că cea mai mare preocupare atunci când introduceți SQL brut în proiectul dvs. este că vă deschideți proiectul până la un potențial comportament malware. Deși ați putea face acest caz pentru orice logică de baze de date, adevărul este că API-urile ar trebui să facă o treabă bună de a ne proteja de ceva de genul asta.

În general vorbind, o fac.

Dar $ wpdb nu este scutită nici de aceasta. Există modalități specifice de a interfața cu baza de date, astfel încât să vă puteți proteja interogările împotriva injectării SQL.

Pentru a reitera un punct din standardele de codificare:

Dacă trebuie să atingeți baza de date, luați legătura cu unii dezvoltatori prin postarea unui mesaj pe lista de discuții pe wp-hackers. Ei ar putea dori să ia în considerare crearea unei funcții pentru versiunea următoare WordPress pentru a acoperi funcționalitatea dorită.

Deci, pe scurt, dacă API nu corespunde cu ceea ce aveți nevoie, atunci $ wpdb poate fi cea mai bună opțiune, dar vă recomandăm să o utilizați doar dacă ați epuizat restul opțiunilor.


Concluzie

În acest moment, am examinat standardele de codificare într-un nivel de detaliu pe care sper că vă dă echipamentul cu informații pe care nu le-ați avut anterior la pornirea acestei serii.

Pentru a încheia acest post special, cea mai mare eliminare pe care vreau să o aibă toată lumea este aceasta:

  1. Verificați API înainte de a scrie SQL inline. Chiar dacă se pot scrie interogări SQL directe Cel mai simplu, în special pentru cei care sunt realizați cu sisteme de baze de date, rezistă nevoii! Verificați mai întâi documentația API.
  2. Dacă nu puteți găsi o funcție API pentru a vă face munca, atunci scrieți SQL. daca tu trebuie sa scrieți SQL, asigurați-vă că țineți cont de toate lucrurile necesare - modul în care doriți ca datele dvs. să fie returnate, că ați pregătit în mod corespunzător interogările dvs. și că gestionați corect datele atunci când acestea sunt returnate.

Dacă faceți asta, atunci ar trebui să vă acoperiți bazele.

În ultimul articol din această serie, vom avea un ghid rapid care rezumă tot ceea ce am discutat în cadrul seriei.

Cod