Eu gostaria de usar uma instrução LIKE% text% enquanto ainda estiver usando a classe WordPress $ wpdb para higienizar e preparar a entrada.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
Eu tentei algo como isto sem sucesso:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
Como você prepara adequadamente uma instrução% LIKE% SQL usando a classe de banco de dados WordPress?
{}
?$wpdb
e ignoraria o que->prefix
estava depois.$wpdb->base_prefixmy_table
e tentaria procurarbase_prefixmy_table
propriedades em vez de apenasbase_prefix
."Você precisa dobrar por cento para que eles não sejam tratados como marcadores de fragmentos da seguinte maneira
wpdb->prepare()
:PS não tenho certeza se essa é a melhor / única maneira de fazer isso.
fonte
wpdb::prepare
somente as adicionará para uma%s
que não seja precedida por uma%
. A parte final da sua consulta deve serWHERE column_2 LIKE '%%%s%%'
.Esta é uma maneira de fazer isso que eu verifiquei e funciona:
Substitua variáveis para atender às suas necessidades.
fonte
%
caracteres (usandolike_escape()
. Veja: codex.wordpress.org/Class_Reference/…