Cum să obții date din baza de date WordPress folosind interogarea WordPress $wpdb?

27 sept. 2014, 16:59:06
Vizualizări: 36.5K
Voturi: 1

Încerc să obțin niște date din tabelele bazei de date WordPress într-un plugin. Pentru asta, folosesc codul de mai jos...

global $wpdb;
$findID = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $findID;

Dar nu îmi afișează ID-ul postării în echo? Este ceva greșit...???

2
Comentarii

Am verificat din nou și am descoperit că era o problemă în codul meu. După ce am rezolvat-o, varianta de mai sus funcționează de asemenea. Poți folosi și răspunsul de mai jos...

Muhammad Hassan Muhammad Hassan
29 sept. 2014 07:29:32

@ialocin Ok. Am terminat...

Muhammad Hassan Muhammad Hassan
2 oct. 2014 07:27:59
Toate răspunsurile la întrebare 2
1

Doar pentru a clarifica, metoda get_var() a obiectului $wpdb funcționează perfect în acest context:

global $wpdb;
$helloworld_id = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $helloworld_id;

De fapt, este mai practic în acest context, deoarece este returnată o singură variabilă, exact ceea ce ne dorim.

27 sept. 2014 20:52:16
Comentarii

Mulțumesc pentru confirmarea că am trimis codul corect, dar problema era în alte coduri ale mele, așa că acum este în regulă...

Muhammad Hassan Muhammad Hassan
2 oct. 2014 07:28:33
3

Am găsit soluția și interogarea corectă pentru a prelua o singură înregistrare din baza de date WordPress este cea de mai jos.

global $wpdb;
$findID = $wpdb->get_results("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $findID[0]->ID;
27 sept. 2014 18:00:37
Comentarii

Nu știu care a fost/este problema în configurația ta, dar folosirea get_var ar trebui să funcționeze perfect. Nu ar trebui să fie nevoie să folosești get_results, care în acest scenariu este în plus puțin nepractic.

Nicolai Grossherr Nicolai Grossherr
27 sept. 2014 20:54:07

Am verificat din nou și am descoperit că era o problemă în codul meu și după ce am rezolvat-o, prima întrebare funcționează și ea corect.

Muhammad Hassan Muhammad Hassan
2 oct. 2014 07:29:29

sintaxa corectă este

global $wpdb; $tableName = $wpdb->prefix . 'leaguemanager_person_status'; $findID = $wpdb->get_results("SELECT ID FROM $tableName WHERE post_name = 'hello-world'"); echo $findID[0]->ID;

digitalzoomstudio digitalzoomstudio
18 iul. 2021 15:54:48