je l'ai déjà créé avec succès la table:Pourquoi je ne peux pas accéder à la table nouvellement créée dans wordpress de cette façon?
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();
Mais lorsque je tente de se référer à ce tableau que la façon dont WP fait référence à ses tables internes comme $wpdb->posts
:
var_dump($wpdb->liveshoutbox);
La sortie est:
null
Pourquoi?
Avez-vous un préfixe de table? Qu'attendez-vous lorsque vous var_dump ($ wpdb-> liveshoutbox); ? Toutes les entrées de la table? –
Pas 100% mais comment WP sait que vous avez une nouvelle table dans la base de données. $ wpdb-> les messages peuvent fonctionner parce que WP sait qui existe et est assigné au moment de la création de l'objet ($ wpdb). Voici la classe wpdb sur le site wp: http://goo.gl/We4o –
J'ai essayé '$ wpdb-> wp_liveshoutbox', également' null'. – wp2