Me gustaría usar una declaración LIKE% text% mientras sigo usando la clase $ wpdb de WordPress para desinfectar y preparar la entrada.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
He intentado algo como esto en vano:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
¿Cómo se prepara correctamente una instrucción% LIKE% SQL utilizando la clase de base de datos de WordPress?
{}
para?$wpdb
e ignoraría el->prefix
siguiente.$wpdb->base_prefixmy_table
e intentaría buscar labase_prefixmy_table
propiedad en lugar de solobase_prefix
."Debe duplicar el porcentaje para que no sean tratados como marcadores de fragmentos por
wpdb->prepare()
:PD: no estoy seguro de que esta sea la mejor / única forma de hacerlo.
fuente
wpdb::prepare
que solo las agregará para un%s
que no esté precedido por un%
. La parte final de su consulta debería serWHERE column_2 LIKE '%%%s%%'
.Esta es una forma de hacerlo que he comprobado y funciona:
Reemplace las variables para satisfacer sus necesidades.
fuente
%
caracteres (mediante el usolike_escape()
. Ver: codex.wordpress.org/Class_Reference/…