• Author:

$wpdb cos’è e come funziona

Cos’è $wpdb:

Wordpress fornisce una classe di funzioni per la manipolazione dei database, tale classe è chiamata wpdb.
La variabile $wpdb rappresenta un’istanza di tale classe ed è dichiarata come global.
Per poterla usare quindi, è necesario dichiararla nella nostra funzione come

global $wpdb;


Come funziona:

$wpdb consente di fare qualunque operazione su un db e su più tabelle, ad esempio ecco come eseguire una query:

/* 
 get_results ritorna un array con il risultato della select
 output_type tipo di array che viene ritornato:
 OBJECT - array indicizzato numerato di objects.
 OBJECT_K - array associativo di objects.
 ARRAY_A - array associativo.
 ARRAY_N - array numerico indicizzato.
 */

 $wpdb->get_results('query', output_type);
/*
 query equivalente di mysql_query, 
 consente di fare qualunque query sql su db WP
 */

 $wpdb->query('query');

Questa funzione consente di preparare una query:

/* 
 prepare si utilizza per rendere ad hoc query con parametro
 */

$wpdb->query( 
	$wpdb->prepare( 
		"
                DELETE FROM $wpdb->postmeta
		 WHERE post_id = %d
		 AND meta_key = %s
		",
	        13, 'gargle' 
        )
);

Funzioni per ritornare elementi specifici di una query:

/*
 get_var ritorna una variabile dal db
 column_offset, per default 0, corrisponde alla prima colonna
 row_offset, valore di default 0, corrisponde alla prima riga
 */

$wpdb->get_var('query',column_offset,row_offset);
/*
 get_row ritorna una riga del db
 output_type: 
 OBJECT - risultato mostrato come object
 ARRAY_A - risultato mostrato in un array associativo.
 ARRAY_N - risultato mostrato in un array numerico indicizzato.
 row_offset, valore di default 0, corrisponde alla prima riga
 */

$wpdb->get_row('query', output_type, row_offset);
/*
 get_col ritorna una colonna
 column_offset, per default 0, corrisponde alla prima colonna
 */

$wpdb->get_col('query',column_offset);

Funzioni per inserire o aggiornare i dati nelle tabelle:

/*
 inserimento dati in db 
 */

$wpdb->insert( 
	'table', 
	array( 
		'column1' => 'value1', 
		'column2' => 123 
	), 
	array( 
		'%s', 
		'%d' 
	) 
);
/* 
 aggiornamento tabella db  
 */

$wpdb->update( 
	'table', 
	array( 
		'column1' => 'value1',	// string
		'column2' => 'value2'	// integer (number) 
	), 
	array( 'ID' => 1 ), 
	array( 
		'%s',	// value1
		'%d'	// value2
	), 
	array( '%d' ) 
);

Infine alcune funzioni per la gestione degli errori di mysql:

/* 
 mostrare, nascondere e stampare errori sql 
 */

$wpdb->show_errors(); 
$wpdb->hide_errors();  
$wpdb->print_error();

Questi sono solamente alcuni dei metodi che WordPress mette a disposizione con la sua classe di funzioni per la gestione dei database, per la documentazione completa e maggiori informazioni consultare il link alla pagina ufficiale di Codex