Cum să obții înregistrări din baza de date în WordPress
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?

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.

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.

@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
?
