Я создаю сайт Wordpress и подключается к базе данных MySQL. Я использую класс wordpress wpdb (https://codex.wordpress.org/Class_Reference/wpdb) для взаимодействия с базой данных. С этим классом я могу запросить TABLES моей базы данных, но не Views.
Мне нужно уметь выбирать виды моей базы данных. Это что-то, что недопустимо с wpdb, или мой код просто не так? Есть ли способ запросить представления так же, как я могу запрашивать таблицы с помощью wpdb?
Я пробовал использовать функцию запроса, а также рассматривал представление так же, как я рассматриваю таблицу, но это не работает. Он возвращает пустой.
Метод запроса:
$test = $mydb->query(
$mydb->prepare(
"
SELECT name FROM $mydb->$view_name
WHERE id = 1"
)
);
echo $test; //returns empty; should return a name
метод Таблица:
$test = $mydb->get_var(
"select name from $view_name WHERE id = 1"
);
echo $test; //returns empty; should return a name
Любые предложения? Могу ли я подключиться к моей базе данных, используя что-то, кроме $ wpdb (позволяет Wordpress это?).
'' 'name''' представляется зарезервированным словом в MySQL ([ссылка] (https://dev.mysql.com/doc/refman/5.7/en/keywords.html)). Попробуйте окружить его back-ticks (') вот так. Вы должны видеть некоторые ошибки, вы следите за журналами? Кроме того, если у вас есть сомнения в ваших запросах, вы можете просто скопировать исходный запрос и выполнить его в phpMyAdmin или любой другой инструмент, который вы используете для доступа к своей базе данных вручную. – Avalanche
Ах! Вы исправили мою проблему! Вероятно, вы правы в том, что «имя» зарезервировано, но другая проблема, которую я обнаружил, заключалась в том, что мой взгляд был назван тем, что вызвало ошибку! Я попытался выбрать свое представление в phpMyAdmin, и это была (первая) проблема. (Для потомков мое мнение называлось «broccoli-and-roots-1price», и это вызвало ошибку). Спасибо! – Mel
@Avalanche Вы решили мою проблему, поэтому я могу присудить вам Принятый ответ, если вы отправляете ответ, если хотите! – Mel