Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

pt-br:Class Reference/wpdb

Interagindo com o Banco de Dados

O WordPress provê uma classe de funções para manipulação de banco de dados. A classe é chamada wpdb E é baseada na classe ezSQL escrita e mantida por Justin Vincent.

Notas de uso

Os métodos na classe wpdb não devem ser chamados diretamente. O WordPress provê a variável global $wpdb, que é uma instância da classe já definida para a comunicação com o banco de dados do WordPress. Utilize sempre a variável global $wpdb. (Consulte gloabalize $wpdb antes de utilizar qualquer função customizada.)

O objeto $wpdb pode ser utilizado para ler os dados de qualquer tabela do bando de dados do WordPress, além das tabelas criadas pelo próprio. Por exemplo para fazer um SELECT em uma tabela personalizada chamada "minha_tabela", você pode fazer o seguinte.

$meusResultados = $wpdb->get_results( "SELECT id, name FROM minha_tabela" );

O objeto $wpdb pode interagir com inúmeras tabelas, porém com apenas um banco de dados: O banco de dados do WordPress. Se você precisar se conectar a outro banco de dados, você precisará instanciar seu próprio objeto da classe wpdb com os detalhes de conexão apropriados. Para instalações complexas com vários bancos de dados, considere utilizar hyperdb.

Execute qualquer consulta no banco de dados

A função query permite que você execute qualquer consulta SQL no banco de dados do WordPress. É preferível utilizar uma função mais específica (veja abaixo), porém, para consultas SELECT.

 <?php $wpdb->query('query'); ?> 

query 
(string) A consulta SQL que você deseja executar.

A função retorna um integer correspondente ao número de linhas afetadas/selecionadas. Se houver um erro MySQL, a função retornará FALSE. (Nota: Como tanto 0 quanto FALSE podem ser retornados, tenha a certeza de usar o operador de comparação correto: igualdade == vs. identidade ===).

Nota: Tal como acontece com todas as funções/classes que executam consultas SQL, você deve escapar a entrada (ex., wpdb->escape($dados_inseridor_pelo_usuario)). Veja a seção entitulada Protegendo consultas contra ataques de SQL Injection abaixo.

Exemplos

Remover a meta 'gargarejo' e seu valor Post 13. (We'll add the 'prepare' method to make sure we're not dealing with an illegal operation or any illegal characters):

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

Performed in WordPress by delete_post_meta().


Set the parent of Page 15 to Page 7.

$wpdb->query(
	"
	UPDATE $wpdb->posts 
	SET post_parent = 7
	WHERE ID = 15 
		AND post_status = 'static'
	"
);