Wordpress $ wpdb-> get_results возвращает пустой массив, но phpMyAdmin возвращает несколько строк. Зачем? - PullRequest
1 голос
/ 12 июля 2020

Код моего плагина 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 в кавычки и без. Кому-нибудь поможет эта дополнительная информация?

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

$, где = "entry_id =". $ Entryid; Я полагаю, что $ entryid следует обернуть в ''

0 голосов
/ 12 июля 2020

Не могли бы вы попробовать добавить этот код?

$wpdb->show_errors( true )

Может быть, тогда он покажет некоторую информацию о том, почему он не работает. Вы пробовали писать без PHP переменных, например, целую строку?

Также попробуйте поместить таблицу в qoutes

SELECT * FROM `wpqs_cf_form_entry_values`

Я также заметил, что entry_id отсутствует в SELECT. У вас должно быть это так:

SELECT id,entry_id FROM `wpqs_cf_form_entry_values`

Также попробуйте поставить поверх файла

global $wpdb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...