2016-12-08 3 views
1

Я новичок в программировании и последующих инструкциях в нескольких книгах и wordpress codex. Я пытаюсь получить доступ к пользовательской базе данных, используя объект $ wpdb. Это делается локально. Я получаю следующую ошибку.Неопределенный объект в Wordpress

Notice: Undefined property: wpdb::$national_re_trends in C:\wamp\www\wordpress\wp-includes\wp-db.php on line 68

получить Также это:

WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1] SELECT * FROM

Вот запрос:

global $wpdb;      
$stuff = $wpdb->get_results("SELECT * FROM $wpdb->national_re_trends"); 
print_r($stuff); 

Вот моя таблица базы данных:

Database table

Я уверен, что это некоторые новые uff, но если кто-то мог бы помочь, я был бы благодарен!

+0

это может обеспечить некоторую помощь [стека обмена с помощью wpdb] (http://wordpress.stackexchange.com/questions/110677/get -results-using-wpdb) – dpp

ответ

0

Существует нет "встроенной" WordPress таблицы не упоминается как national_re_trends, так $wpdb->national_re_trends не будет существовать. (Here is a list из 11 встроенных таблиц WP).

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

Как правило, мне нравится определять константу, что-то вроде этого, чтобы получить встроенный в нее префикс таблицы (конечно, если вы не указали префикс таблицы при создании таблицы, вы бы хотели учтите это и удалите $ table_prefix ниже).

global $table_prefix; 
define('MY_TABLE_NAME', $table_prefix . 'national_re_trends'); 

Затем, ваш запрос будет выглядеть примерно так:

global $wpdb; 
$stuff = $wpdb->get_results('SELECT * FROM ' . MY_TABLE_NAME); 
var_dump($stuff); 
+0

Я очень ценю помощь. Это сработало отлично. Есть ли преимущество в его определении таким образом? Thx так много! – bryan0920

+0

Преимущество определения константы заключается в том, что константа доступна для всех функций, классов и т. Д., Которые вы можете написать (переменная не будет доступна внутри функций без использования 'global', тогда как константа ** равна **) , Использование такой константы делает код более удобным, потому что, если вы просто вводите имя таблицы в каждый запрошенный вами текст, если вам когда-либо понадобится изменить имя таблицы, вам придется изменить его в каждом отдельном запросе. Если вы определите константу, как я предлагаю, вам нужно будет только изменить имя таблицы в ОДНОМ месте - где вы определили константу. –

+0

Большое вам спасибо за ваше время и ответ. Я буду реализовывать. – bryan0920

0

Если dhe_ Ваш префикс таблицы, удалите $wpdb после FROM.

global $wpdb;      
    $stuff = $wpdb->get_results("SELECT * FROM dhe_national_re_trends"); 
    print_r($stuff); 

Если вы хотите использовать $ wpdb-> Префикс

global $wpdb;      
    $stuff = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}national_re_trends"); 
    print_r($stuff); 
+0

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

+0

Я редактирую свой ответ, – Benoti

+0

Это то, что я искал. Меня озадачивает две книги, на которые я ссылаюсь, не упоминают об этом. Спасибо огромное! – bryan0920

Смежные вопросы