Почему я не могу получить доступ к недавно созданной таблице в WordPress таким образом? - PullRequest
1 голос
/ 24 ноября 2010

Я уже успешно создал таблицу:

function jal_install () {
  global $wpdb;
  global $jal_db_version;
  $table_name = $wpdb->prefix . "liveshoutbox";
  if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
      $sql = "CREATE TABLE " . $table_name . " (

id mediumint(9) NOT NULL AUTO_INCREMENT, time bigint(11) DEFAULT '0' NOT NULL, name tinytext NOT NULL, text text NOT NULL, url VARCHAR(55) NOT NULL, UNIQUE KEY id (id) );";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
     dbDelta($sql);
     $welcome_name = "Mr. Wordpress";
     $welcome_text = "Congratulations, you just completed the installation!";
     $insert = "INSERT INTO " . $table_name .
           " (time, name, text) " .
           "VALUES ('" . time() . "','" . $wpdb->escape($welcome_name) . "','" . $wpdb->escape($welcome_text) . "')";
     $results = $wpdb->query( $insert );
  }
}

jal_install ();

Но когда я пытаюсь ссылаться на эту таблицу как на то, как WP ссылается на свои внутренние таблицы, такие как $wpdb->posts:

var_dump($wpdb->liveshoutbox);

Вывод:

null

Почему?

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Я знаю, что прошло много времени с тех пор, как появилась эта тема, но подумал, что поделюсь, как я ее решил.Ответ, по-видимому, заключается в полном обращении к имени таблицы, включая префикс без $ wpdb->.Не уверен, что это работает для var_dump, но он сделал для получения строк и результатов

0 голосов
/ 24 ноября 2010

Нет поддержки для

$wpdb->liveshoutbox

и только внутренняя таблица имеет прямой доступ к: (например)

$wpdb->posts

Для этого ваш единственный вариант:

$wpdb->prefix . "liveshoutbox"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...