База данных Wordpress с пользовательской таблицей - PullRequest
0 голосов
/ 02 августа 2010

Я пытаюсь извлечь данные из таблицы, которую я импортировал, в свою базу данных WordPress.

Мой php-код работает для всех стандартных таблиц wp_, но когда я пытаюсь нацелиться на нужные мне таблицы, я получаю все ошибкиназад.

Мой код (в настоящее время повторяет все заголовки сообщений, и он работает)

$liveposts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->posts
 WHERE post_status = 'publish'") );

 foreach ($liveposts as $livepost) {
  echo '<p>' .$livepost->post_title. '</p>';
}

Я импортировал 3 таблицы из другой базы данных, и да, у них есть данные для извлечения.Я обнаружил, что $wpdb->posts ожидает, что таблица записей будет wp_posts .. поэтому я попытался переименовать мои таблицы в wp_bus_route ... но все равно ничего.

Я использовал phpMyAdmin для экспорта 3 таблиц из большой базы данных(в формате .sql) и импортировал их.я могу видеть таблицы в phpMyAdmin и просматривать все данные в них.

Я впервые получаю данные из базы данных wp, поэтому я упускаю что-то очевидное.

Ответы [ 2 ]

6 голосов
/ 08 декабря 2011

Ссылка на имя таблицы, например $wpdb->posts, работает только для стандартных таблиц WP.Для пользовательских таблиц создайте имя таблицы следующим образом:

$liveposts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "tablename WHERE post_status = 'publish'") );

Никогда, никогда, никогда не кодируйте префикс жестко.Это можно изменить в wp-config.php, и многие люди изменяют его на что-то отличное от wp_.Изменение его с wp_ является хорошей мерой безопасности.Даже если это ваш собственный код и ваш собственный сайт, $wpdb->prefix - это лучшая практика, которую стоит превратить в привычку.

2 голосов
/ 02 августа 2010

Старайтесь не использовать переменные в именах таблиц:

$liveposts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM wp_bus_route
 WHERE post_status = 'publish'") );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...