J'aimerais utiliser une instruction LIKE% text% tout en utilisant toujours la classe WordPress $ wpdb pour assainir et préparer les entrées.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
J'ai essayé quelque chose comme ça en vain:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
Comment préparer correctement une instruction% LIKE% SQL à l'aide de la classe de base de données WordPress?
{}
?$wpdb
et ignorerait le->prefix
suivi.$wpdb->base_prefixmy_table
et essaierait de rechercher unebase_prefixmy_table
propriété au lieu d'un simplebase_prefix
.Vous devez doubler le pourcentage afin qu'ils ne soient pas traités comme des marqueurs de fragments par
wpdb->prepare()
:PS pas sûr que ce soit la meilleure / seule façon de le faire.
la source
wpdb::prepare
ne les ajouterez que pour un%s
message non précédé d'un%
. La dernière partie de votre requête devrait êtreWHERE column_2 LIKE '%%%s%%'
.C’est une façon de le faire que j’ai vérifiée et qui fonctionne:
Remplacez les variables pour répondre à vos besoins.
la source
%
caractères (en utilisantlike_escape()
. Voir: codex.wordpress.org/Class_Reference/…