Cum să obții înregistrări din baza de date în WordPress

3 dec. 2013, 15:38:21
Vizualizări: 14K
Voturi: 0

index.php:

 <?php $new=$wpdb->query("select * from wp_posts where post_title='Auto Draft'");
 $new1=mysql_fetch_row($new);
 echo $new1[0];
 ?>

Cum să obții înregistrări din baza de date?
Cum funcționează baza de date cu fișierele WordPress?

0
Toate răspunsurile la întrebare 1
4

wpdb este un wrapper simplu în jurul funcțiilor mysql_*, dar nu le poți amesteca. $wpdb->query nu returnează referința la baza de date de care are nevoie mysql_fetch_row. Acesta ...

... returnează un întreg corespunzător numărului de rânduri afectate/selectate. Dacă apare o eroare MySQL, funcția va returna FALSE. (Notă: deoarece atât 0 cât și FALSE pot fi returnate, asigură-te că folosești operatorul de comparație corect: egalitate == vs. identitate ===).

Trebuie doar să citești Codex-ul.

Deci, $wpdb->query este folosit într-adevăr pentru interogări care nu returnează date, cum ar fi o ștergere.

Ceea ce vrei tu este:

$new = $wpdb->get_results("select * from wp_posts where post_title='Auto Draft'");

Ai nevoie și de prepare dacă folosești date furnizate de utilizator.

$new = $wpdb->get_results($wpdb->prepare("select * from wp_posts where post_title=%s",$str));

Aceasta va returna un obiect, dar poți pasa un al doilea parametru pentru a obține un array. Poți itera peste acel obiect sau array cu operațiuni obișnuite PHP de obiect/array.

Există și $wpdb->get_var și $wpdb->get_col.

Baza de date conține, ca și în orice altă aplicație PHP/MySQL, conținutul dinamic - postări, pagini, opțiuni configurabile, tabele de categorii etc. Nu este o listă ușor de enumerat.

În legătură cu întrebarea din comentariu, "în ce caz avem cel mai probabil nevoie" Nu am idee. Depinde de ce faci. Nu este cu adevărat posibil de răspuns, dar aș spune că în majoritatea cazurilor nu ar trebui să ai nevoie, nici să scrii SQL pentru a manipula baza de date. Există multe funcții de bază pentru asta - WP_Query, WP_User_Query, set_option, update_post_meta, wp_update_post, lista continuă pentru încă vreo douăzeci de linii.

3 dec. 2013 16:21:29
Comentarii

oh, ce drăguț din partea ta :) care este rolul bazei de date? Adică cum să folosești interogările bazei de date în WordPress și în ce cazuri avem probabil nevoie să le folosim cel mai des. Mulțumesc mult.

Tushar Sharma Tushar Sharma
4 dec. 2013 06:45:39

@TusharSharma : Vezi modificarea.

s_ha_dum s_ha_dum
4 dec. 2013 17:23:06

@s_ha_dum poți să verifici punctele de mai jos? - Ai menționat $wpdb->query este pentru interogări care nu returnează date, cum ar fi o ștergere. dar în cazul unei interogări de ștergere $wpdb->query va returna numărul de înregistrări afectate. - Ai folosit $wpdb->results. Nu ar trebui să fie $wpdb->get_results?

Chittaranjan Chittaranjan
13 dec. 2013 08:51:11

Mă refeream la "returnarea datelor din baza de date" — rânduri/valori din baza de date. Da, cred că toate metodele returnează o anumită informație despre execuția interogării. Da, este vorba despre get_results. Probabil am scris în grabă. :)

s_ha_dum s_ha_dum
13 dec. 2013 16:35:03