Код моего плагина WordPress выглядит так:
$table = $wpdb->prefix."cf_form_entry_values";
$where = "entry_id = ".$entryid;
$select = "SELECT id FROM {$table} WHERE {$where}";
$query = $wpdb->prepare( $select );
$result = $wpdb->get_results( $query );
Он производит следующий mysql запрос: SELECT id FROM wpqs_cf_form_entry_values WHERE entry_id = 49
WordPress возвращает пустой массив. Нет сообщений об ошибках SQL (у меня установлен show_errors ()), var_dump пуст. Но если я вырезал и вставил этот запрос в phpMyAdmin, он вернет ожидаемые строки. Я не понимаю, почему WordPress дает мне пустые результаты. Я также пробовал SELECT * FROM wpqs_cf_form_entry_values WHERE entry_id = 49
Я заметил, что если я удалю предложение WHERE, WordPress с радостью вернет мне всю таблицу, но почему я не могу ее отфильтровать с предложением WHERE?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ПОСЛЕ ДАЛЬНЕЙШЕГО ТЕСТИРОВАНИЯ ... Любопытно, что работает, а что нет.
Эти два запроса не работают:
SELECT * FROM wpqs_cf_form_entry_values WHERE entry_id = 55 AND slug = 'photo'
SELECT * FROM wpqs_cf_form_entry_values WHERE entry_id = 55
А вот этот:
SELECT * FROM wpqs_cf_form_entry_values WHERE slug = 'photo'
Я пробовал помещать значение entry_id в кавычки и без. Кому-нибудь поможет эта дополнительная информация?