Я пытаюсь получить информацию из моей базы данных. Я хотел показать все, pages
используя это утверждение, но я получаю пустоеARRAY
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM $wpdb->wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
Вывод:
ARRAY
РЕДАКТИРОВАТЬ : после изменения ниже предложения, я сейчас использую это. но я до сих пор не получаю никаких результатов:
global $wpdb;
$posts = $wpdb->wp_posts;
$result = $wpdb->get_results( " SELECT * FROM $posts WHERE 'post_type' = 'page' " );
foreach ($result as $page) {
echo $page->ID.'<br/>';
}
$wpdb->wp_posts
фигурными скобками, т.е.{$wpdb->wp_posts}
..Ответы:
источник
echo $result
просто убедиться,query
что я получаю данные из того, что я получаю, это печатьArray
. когда я использую,echo $page->ID
я ничего не получаю.$tablename = $wpdb->prefix.'posts';
эта часть не была описана в документации кодекса. Вы можете объяснить мне, почему это работает?У вас небольшое недоразумение:
При вызове
$wpdb
вы получаете список свойств, которые содержат основные имена таблиц:Итак, ваш последний запрос будет выглядеть так :
источник
$wpdb->prefix
не следует использовать для встроенных таблиц. Просто позвоните им напрямую. Исправлено это и его ответ.Попробуйте следующий код. Я столкнулся с подобной проблемой и решил ее, удалив $ wpdb из поля 'FROM'.
источник
Под «пустым массивом» подразумевается «пустой массив» или вывод «ARRAY». Если это последнее, то это ожидаемый результат. Вам нужно перебрать этот массив и отобразить результаты соответственно.
Ссылка: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
источник