Come recuperare record dal database in WordPress
index.php
:
<?php
// Recupera tutti i record dalla tabella wp_posts dove il titolo è 'Auto Draft'
$new = $wpdb->query("SELECT * FROM wp_posts WHERE post_title='Auto Draft'");
// Estrae una riga dal risultato
$new1 = mysql_fetch_row($new);
// Stampa il primo valore della riga
echo $new1[0];
?>
Come recuperare record dal database?
Come funziona il database con i file di WordPress?
wpdb
è un semplice wrapper attorno alle funzioni mysql_*
, ma non puoi mescolarle. $wpdb->query
non restituisce il riferimento al database di cui mysql_fetch_row
ha bisogno. Esso ...
... restituisce un intero corrispondente al numero di righe interessate/selezionate. Se c'è un errore MySQL, la funzione restituirà FALSE. (Nota: poiché possono essere restituiti sia 0 che FALSE, assicurati di utilizzare l'operatore di confronto corretto: uguaglianza == vs. identicità ===).
Quindi, $wpdb->query
è davvero per query che non restituiscono dati, come una cancellazione.
Ciò che vuoi è:
$new = $wpdb->get_results("select * from wp_posts where post_title='Auto Draft'");
Dovresti usare anche prepare
se stai utilizzando dati forniti dall'utente.
$new = $wpdb->get_results($wpdb->prepare("select * from wp_posts where post_title=%s",$str));
Questo restituirà un oggetto
, ma puoi passare un secondo parametro per ottenere un array
. Puoi iterare su quell'oggetto o array con le normali operazioni PHP su oggetti/array.
Esistono anche $wpdb->get_var
e $wpdb->get_col
.
Il database contiene, come in qualsiasi altra applicazione PHP/MySQL, i tuoi contenuti dinamici - post, pagine, opzioni configurabili, tabelle delle categorie, ecc. Non è un elenco facilmente enumerabile.
Per quanto riguarda la domanda nel commento, "quale caso abbiamo bisogno di usare più probabilmente" Non ne ho idea. Dipende da ciò che stai facendo. Non è davvero rispondibile, ma direi che nella maggior parte dei casi non dovresti aver bisogno, né dovresti comunque, scrivere SQL per manipolare il database. Ci sono molte funzioni di base per questo - WP_Query
, WP_User_Query
, set_option
, update_post_meta
, wp_update_post
, e così via per altre venti righe.

che gentile da parte tua :) qual è il ruolo del database .intendo come utilizzare le query del database in wordpress e in quali casi è più probabile che dobbiamo usarle. grazie mille

@s_ha_dum puoi per favore verificare i punti seguenti. - Hai menzionato $wpdb->query è veramente per query che non restituiscono dati, come un delete.
ma nel caso di una query delete $wpdb->query
restituirà il numero di record interessati. - Hai usato $wpdb->results
. Non dovrebbe essere $wpdb->get_results
?
