Usando como declaração com US $ wpdb-> preparar mostrando hashes onde caracteres curinga são

votos
0

Eu estou tentando construir uma declaração preparada com curingas no entanto eu estou correndo em um problema onde os personagens percentual curinga parecem estar retornando o que parecem ser hashes para os wildcards e eu não sei por que. O código em questão é:

$condition = $wpdb->prefix.posts.post_title LIKE %%%s%%;
$query['conditions'][] = $wpdb->prepare($condition, $name);

E os resultados são:

posts.post_title LIKE {d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}BT{d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}

Só queria saber se alguém tinha alguma idéia sobre o que poderia estar causando isso. Qualquer ajuda seria muito apreciada.

obrigado

Publicado 18/12/2018 em 11:02
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

O curinga para COMO deve ser dentro de qualquer que seja variável está sendo denotado por %s. Caso contrário, ele está recebendo o token para o parâmetro misturado com o curinga SQL. Mesmo que isso não era um problema, você precisa fazê-lo assim mesmo porque caso contrário o% não será escapou dentro da string e você vai acabar com um erro de sintaxe SQL.

Em outras palavras, você precisa adicionar os curingas para o $namepróprio valor. Isso deve fazer o trabalho, eu penso:

$condition = $wpdb->prefix."posts.post_title LIKE %s";
$name = '%'.$name.'%';
$query['conditions'][] = $wpdb->prepare($condition, $name);
Respondeu 18/12/2018 em 11:07
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more