Utilizando como declaración con $ wpdb-> preparar mostrando valores hash donde son caracteres comodín

votos
0

Estoy tratando de construir una declaración preparada con comodines sin embargo yo estoy corriendo en un problema por el que los caracteres comodín porcentaje parecen estar volviendo lo que parecen ser los hashes de los comodines y no estoy seguro de por qué. El código en cuestión es:

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

Y los resultados son los siguientes:

posts.post_title LIKE {d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}BT{d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}

Sólo se preguntó si alguien tenía alguna idea de lo que podría ser la causa de esto. Cualquier ayuda sería muy apreciada.

Gracias

Publicado el 18/12/2018 a las 11:02
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

El comodín para como debe ser dentro de lo que sea la variable que se está denotado por %s. De lo contrario se está haciendo el token para el parámetro mezclado con el comodín de SQL. Incluso si eso no era un problema, es necesario hacerlo así de todos modos porque de lo contrario el% no se escapó dentro de la cadena y que va a terminar con un error de sintaxis SQL.

En otras palabras, es necesario agregar los comodines para el $namevalor en sí. Esto debería hacer el trabajo, pienso:

$condition = $wpdb->prefix."posts.post_title LIKE %s";
$name = '%'.$name.'%';
$query['conditions'][] = $wpdb->prepare($condition, $name);
Respondida el 18/12/2018 a las 11:07
fuente por usuario

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