Как получить данные из базы данных WordPress используя запрос $wpdb?

27 сент. 2014 г., 16:59:06
Просмотры: 36.5K
Голосов: 1

Я пытаюсь получить некоторые данные из таблиц базы данных WordPress в плагине. Для этого я использую следующий код...

global $wpdb;
$findID = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $findID;

Но он не выводит ID поста при использовании echo? Что здесь может быть не так...???

2
Комментарии

Я проверил ещё раз и обнаружил, что проблема была в моём коде. После исправления верхний вариант также заработал. Вы можете использовать и вариант из ответа ниже...

Muhammad Hassan Muhammad Hassan
29 сент. 2014 г. 07:29:32

@ialocin Хорошо. Готово...

Muhammad Hassan Muhammad Hassan
2 окт. 2014 г. 07:27:59
Все ответы на вопрос 2
1

Для уточнения, метод get_var() объекта $wpdb действительно отлично работает в данном контексте:

global $wpdb;
$helloworld_id = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $helloworld_id;

Фактически, он более практичен в этом случае, так как возвращается единственная переменная, что и требуется.

27 сент. 2014 г. 20:52:16
Комментарии

Спасибо, что подтвердили, что я поделился правильным кодом, но проблема была в других частях моего кода - теперь всё в порядке...

Muhammad Hassan Muhammad Hassan
2 окт. 2014 г. 07:28:33
3

Я нашел решение, и правильный запрос для получения одного значения из базы данных WordPress выглядит следующим образом:

global $wpdb;
$findID = $wpdb->get_results("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $findID[0]->ID;
27 сент. 2014 г. 18:00:37
Комментарии

Не знаю, в чем была/есть проблема в вашей настройке, но использование get_var должно работать нормально. Нет необходимости использовать get_results, что в данном сценарии также немного неудобно.

Nicolai Grossherr Nicolai Grossherr
27 сент. 2014 г. 20:54:07

Я проверил еще раз и обнаружил, что это была моя ошибка в коде, и после исправления первый вариант тоже работает нормально.

Muhammad Hassan Muhammad Hassan
2 окт. 2014 г. 07:29:29

правильный синтаксис:

global $wpdb; $tableName = $wpdb->prefix . 'leaguemanager_person_status'; $findID = $wpdb->get_results("SELECT ID FROM $tableName WHERE post_name = 'hello-world'"); echo $findID[0]->ID;

digitalzoomstudio digitalzoomstudio
18 июл. 2021 г. 15:54:48