Escrevendo consultas personalizadas no WordPress

Com consultas personalizadas você pode fazer qualquer leitura ou manipulação de dados que desejar. Isso abre um mundo de novas possibilidades.

Por que usar consultas personalizadas?

A funcionalidade básica do WordPress é boa na maioria das vezes, mas o que você faria se tivesse algumas necessidades específicas que ainda não foram atendidas pelos plugins existentes? Você está escrevendo seu próprio plugin? Então você deve aprender como usar consultas SQL no WordPress! As referências oficiais podem ser encontradas no WordPress Codex (Custom Queries e a classe WPDB).

o wpdb Classe

o wpdb A classe global do WordPress é a chave para usar consultas personalizadas. Na verdade, na hora de executar consultas, quase todas as APIs do WordPress, que precisam buscar dados do banco de dados, acabam usando essa classe em segundo plano. Para usar esta classe, você precisa usar o global $wpdb variável, que é uma instanciação do wpdb classe.

Nesta seção, discutiremos alguns métodos importantes do wpdb classe. Usando esses métodos, você pode realizar todos os tipos de consultas personalizadas em seu projeto WordPress.

o query método

o query é usado para executar uma consulta usando a conexão de banco de dados ativa. O primeiro argumento do query método é uma instrução SQL válida. O valor de retorno deste método é um número inteiro correspondente ao número de linhas afetadas/selecionadas ou false quando há um erro.

Normalmente, você deseja usar esse método quando deseja recuperar uma contagem de registros. Vamos dar uma olhada no exemplo a seguir para entender como você pode usar esse método.

Em primeiro lugar, declaramos o $wpdb variável global para que possamos usar o wpdb classe. Em seguida, preparamos a instrução SQL e a passamos como o primeiro argumento do query método. o query O método executaria a consulta e retornaria o número de linhas selecionadas ou afetadas.

o get_results Método

o get_results O método retorna todo o resultado da consulta, que é uma matriz. Cada elemento de uma matriz corresponde a uma linha do resultado.

Vamos dar uma olhada no exemplo a seguir.

Em primeiro lugar, usamos o prepare método para preparar a consulta SQL para execução segura. Discutiremos mais sobre declarações preparadas posteriormente neste artigo. Em seguida, passamos a consulta preparada no primeiro argumento do get_results método. finalmente, o get_results O método executa a consulta e retorna o resultado como uma matriz.

o get_var Método

o get_var é usado para retornar uma variável do banco de dados e o resultado completo da consulta é armazenado em cache para uso posterior. Ele retorna NULL se não houver resultado.

Vamos dar uma olhada no exemplo a seguir para entender como ele funciona.

o get_var método recebe três argumentos.

  • consulta: a consulta SQL que você deseja executar.
  • coluna: o nome da coluna para recuperar dos resultados
  • fileira: o número da linha específica que você deseja recuperar do conjunto de resultados.

No exemplo acima, tentamos recuperar o valor da name coluna na primeira linha.

o get_row Método

o get_row é usado para recuperar uma única linha do banco de dados. Ele retorna NULLquando não há resultado.

o get_row método recebe três argumentos.

  • consulta: a consulta SQL que você deseja executar.
  • tipo de retorno: um de OBJECT, ARRAY_Aou ARRAY_Nque correspondem a uma stdClass objeto, uma matriz associativa ou uma matriz numérica.
  • fileira: o número da linha específica que você deseja recuperar do conjunto de resultados

No exemplo acima, tentamos recuperar a quarta linha do conjunto de resultados.

o get_col Método

o get_col é usado para recuperar a coluna específica do conjunto de resultados. Se o conjunto de resultados contiver apenas uma coluna, ela será retornada. Por outro lado, se o conjunto de resultados contiver mais de uma coluna, ele retornará a coluna específica conforme especificado no segundo argumento.

No exemplo acima, tentamos recuperar a quarta coluna do conjunto de resultados.

Consultas preparadas

De acordo com o manual do php.net:

“Elas [prepared queries] pode ser pensado como um tipo de modelo compilado para o SQL que um aplicativo deseja executar, que pode ser personalizado usando parâmetros variáveis.”

Uma instrução preparada é uma instrução SQL pré-compilada que pode ser executada várias vezes enviando apenas os dados para o servidor. Ele tem a vantagem adicional de tornar automaticamente os dados usados ​​nos espaços reservados protegidos contra ataques de injeção de SQL. Você pode usar uma instrução preparada incluindo espaços reservados em seu SQL.

Em resumo, uma consulta deve ter escape de SQL antes de ser executada para evitar ataques de injeção. o wpdb classe fornece a prepare método que permite preparar a consulta SQL para execução segura. Nos exemplos que discutimos até agora, já usamos o prepare antes de executarmos consultas SQL.

Vamos dar uma olhada rápida no exemplo a seguir em que os valores 10, monkey e apple será escapado quando for realmente usado na consulta.

Configurando mensagens de erro

Você pode ativar e desativar as mensagens de erro do banco de dados com o show_errors e hide_errors métodos.

Controle de cache

A liberação do cache de resultados da consulta pode ser feita com o flush método.

Inserindo dados

Você pode usar o insert método para inserir uma linha na tabela MySQL.

o insert método recebe três argumentos.

  • tabela: O nome da mesa
  • dados: os dados a serem inseridos (coluna => pares de valores) sem escapar
  • formato: uma matriz de formatos a serem mapeados para cada um dos valores em $data. Se você não passar nada, todos os valores serão tratados como strings

Atualizando dados

o update é usado para atualizar uma linha na tabela MySQL.

o update método recebe cinco argumentos.

  • tabela: O nome da mesa.
  • dados: os dados a serem atualizados (pares de valor de coluna) sem escapar.
  • Onde: onde condições na forma de matriz de pares de valores-chave.
  • formato: uma matriz de formatos a serem mapeados para cada um dos valores em $data. Se você não passar nada, todos os valores serão tratados como strings.
  • formato onde: uma matriz de formatos a serem mapeados para cada um dos valores em $where. Se você não passar nada, todos os valores serão tratados como strings.

Informações da Coluna

o get_col_info é usado para recuperar metadados de coluna da última consulta.

Vamos dar uma olhada nos parâmetros.

  • info_type: o tipo de metadados que você deseja recuperar. Você pode passar qualquer um destes: 'name', 'table', 'def', 'max_length', 'not_null', 'primary_key', 'multiple_key', 'unique_key', 'numeric', 'blob', 'type', 'unsigned'ou 'zerofill'.
  • col_offset: Especifique a coluna da qual recuperar informações.

Referenciando tabelas do WordPress

As tabelas de banco de dados do WordPress podem ser referenciadas no wpdb classe. Isso é muito conveniente, pois os nomes das tabelas podem ser diferentes dos padrões. Aqui está uma lista de referências de tabelas de banco de dados do WordPress:

  • $wpdb->posts;
  • $wpdb->postmeta;
  • $wpdb->comments;
  • $wpdb->commentmeta;
  • $wpdb->terms;
  • $wpdb->term_taxonomy;
  • $wpdb->term_relationships;
  • $wpdb->users;
  • $wpdb->usermeta;
  • $wpdb->links;
  • $wpdb->options;

Observe que não precisamos incluir o prefixo, esse é o benefício aqui, pois o wpdb classe cuida disso para nós.

Aí temos! Uma referência para consultas personalizadas no WordPress, tudo em um só lugar para você.

Este post foi atualizado com contribuições de Sajal Soni. Sajal pertence à Índia e adora passar o tempo criando sites baseados em estruturas de código aberto.

Deixe uma resposta