2010-11-24 21 views
1

私はすでに正常テーブルを作成しました:なぜこのようにWordPressで新しく作成したテーブルにアクセスできないのですか?

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 

なぜですか?

$wpdb->liveshoutbox 

only internal table have direct accessにはサポートされていません

+0

テーブルプレフィックスはありますか?何を期待していますか?var_dump($ wpdb-> liveshoutbox); ?テーブルのすべてのエントリ? –

+0

100%ではありませんが、WPはデータベースに新しいテーブルがあることをどのように知っていますか。 $ wpdb-> postsは、WPがobject($ wpdb)の作成時に存在し、割り当てられていることを知っているので動作します。 wpサイトのwpdbクラスは次のとおりです:http://goo.gl/We4o –

+0

'$ wpdb-> wp_liveshoutbox'と' null'を試しました。 – wp2

答えて

0

:(例)そのために

$wpdb->posts 

は、あなたの唯一のオプションは次のとおりです。

$wpdb->prefix . "liveshoutbox" 
1

私はそれがあったことを知っていますこのスレッドは登場して以来、私はそれを解決する方法を共有すると思った。答えは、$ wpdb->のない接頭辞を含めてテーブル名を完全に参照することです。それはvar_dumpで動作するかどうかはわかりませんが、行と結果を取得するために実行しました

関連する問題