Chciałbym użyć instrukcji LIKE% text%, wciąż używając klasy WordPress $ wpdb do dezynfekcji i przygotowywania danych wejściowych.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
Próbowałem czegoś takiego bezskutecznie:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
Jak poprawnie przygotować instrukcję SQL% LIKE% przy użyciu klasy bazy danych WordPress?
{}
za?$wpdb
i zignoruje->prefix
po nim.$wpdb->base_prefixmy_table
base_prefixmy_table
base_prefix
Musisz podwoić procent, aby nie były traktowane jak markery fragmentów przez
wpdb->prepare()
:PS nie jestem pewien, czy jest to najlepszy / jedyny sposób, aby to zrobić.
źródło
wpdb::prepare
dodasz je tylko dla%s
znaku, który nie jest poprzedzony znakiem%
. Ostatnią częścią twojego zapytania powinno byćWHERE column_2 LIKE '%%%s%%'
.Jest to jeden ze sposobów, aby to sprawdzić, i sprawdziłem:
Zamień zmienne zgodnie z własnymi potrzebami.
źródło
%
znaków (używająclike_escape()
. Patrz: codex.wordpress.org/Class_Reference/…