L'oggetto $wpdb
, che è in realtà un'istanza della classe di WordPress relativa, non è in genere sfruttato come dovrebbe. I metodi di questa classe non consentono solo di reperire
risultati dal database o di eseguire query dirette, ma permettono anche di automatizzare diverse altre operazioni.
Cancellazione dei dati
Molti plugin per cancellare dati ricorrono a query dirette:
global $wpdb;
$wpdb->query( 'DELETE FROM tabella WHERE id_tabella = 1' );
In realtà esiste un metodo apposito per questa operazione:
global $wpdb;
$table = 'tabella';
$where = array( 'id_tabella' => 1 );
$format = array( '%d' );
$wpdb->delete( $table, $where, $format );
Il metodo delete()
accetta come primo parametro il nome della tabella, come secondo parametro la clausola WHERE
sotto forma di array associativo di condizioni e come
terzo parametro il formato atteso per i dati usati nella clausola WHERE
.
Inserimento dei dati
Anche per questa operazione esiste un metodo apposito:
global $wpdb;
$table = 'tabella';
$query_data = array(
'nome' => 'Gabriele',
'cognome' => 'Romanato',
'professione' => 'Sviluppatore'
);
$format = array( '%s', '%s', '%s' );
$wpdb->insert( $table, $query_data, $format );
Il metodo insert()
accetta come primo parametro il nome della tabella, come secondo parametro un array associativo in cui le chiavi sono i nomi delle colonne del database e i valori sono i valori da inserire e come terzo parametro il formato dei valori inseriti in forma di array lineare.
Aggiornamento dei dati
Ecco il modo corretto di eseguire una query UPDATE
:
global $wpdb;
$table = 'tabella';
$query_data = array(
'telefono' => '1234',
'mobile' => '0123'
)
$where = array( 'id_profilo' => 12 );
$format = array( '%s', '%s' );
$where_format = array( '%d' );
$wpdb->update( $table, $query_data, $where, $format, $where_format );
Il primo parametro del metodo update()
è il nome della tabella, il secondo parametro è un array associativo in cui le chiavi sono i nomi delle colonne del database e i valori sono i valori da aggiornare, il terzo parametro è la clausola WHERE
sotto forma di array associativo, il quarto parametro è un array costituito dal formato dei nuovi dati inseriti ed il quinto
parametro è il formato della clausola WHERE
sotto forma di array.