Я хотел бы использовать оператор LIKE% text%, все еще используя класс WordPress $ wpdb для очистки и подготовки ввода.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
Я пробовал что-то вроде этого безрезультатно:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
Как правильно подготовить оператор SQL% LIKE%, используя класс базы данных WordPress?
{}
?$wpdb
и игнорировать->prefix
после него.$wpdb->base_prefixmy_table
и попытаться найтиbase_prefixmy_table
свойство, а не простоbase_prefix
.Вам нужно удвоить процент, чтобы они не рассматривались как маркеры фрагментов
wpdb->prepare()
:PS не уверен, что это лучший / единственный способ сделать это.
источник
wpdb::prepare
что добавите их только для a,%s
которому не предшествует%
. Заключительная часть вашего запроса должна бытьWHERE column_2 LIKE '%%%s%%'
.Это один из способов, который я проверил, и он работает:
Замените переменные в соответствии с вашими потребностями.
источник
%
символы (используяlike_escape()
. См .: codex.wordpress.org/Class_Reference/…