Je sais que ce type de question a été posé à maintes reprises, mais je ne pouvais pas trouver de solution à mon problème, j'espère donc que vous pourrez m'aider. J'utilise WP 3.3. et j'ai créé une table personnalisée. Maintenant, je veux y insérer des données, mais je ne parviens pas à les faire fonctionner. Ceci est mon code:
global $wpdb;
$table_name = $wpdb->prefix . "my_data";
$wpdb->insert($table_name, array(
'my_id' => NULL,
'my_day' => $day,
'my_month' => $month,
'my_abbr' => $abbr,
'my_venue' => $venue,
'my_geo' => $geo_one.", ".$geo_two,
'my_artist' => $artist,
'my_link' => $link
)
);
J'essaie d'insérer des données depuis plusieurs heures sans chance. À mes yeux, le code est correct, mais je suppose que je ne fais que soulever quelque chose d’important ici. Tous les indicateurs seraient appréciés! Je vous remercie
Lorsque la méthode $wpdb
ne fonctionne pas comme il se doit, elle est probablement liée à la requête SQL résultante (en raison d'une entrée incorrecte ou de quelque chose d'autre).
Suivez wpdb reference in Codex
pour le dépannage:
$wpdb->show_errors()
$wpdb->last_query
La classe wpdb n'a pas d'insert; vous ne devriez pas utiliser la requête; voir le codex et vous ne trouvez pas cette fonction insert()
- http://codex.wordpress.org/Class_Reference/wpdb
Un exemple pour insérer une table personnalisée sur WPDB; utilisez une syntaxe CREATE TABLE
- SQL par défaut et créez avec la query()
de wpdb la table avec vos valeurs.
$table = $GLOBALS['wpdb'] -> prefix . 'my_data';
$GLOBALS['wpdb'] -> query(
"CREATE TABLE $table (
called_by varchar(96) NOT NULL,
my_name varchar(96) NOT NULL,
my_type varchar(15) NOT NULL,
first_call int(11) NOT NULL,
arg_count tinyint(4) NOT NULL,
file_name varchar(128) NOT NULL,
line_num smallint NOT NULL,
PRIMARY KEY (first_call, my_name) )"
);
Pour insérer cette source, utilisez la register_activation_hook()
- hook; seulement lors de l'activation, le plugin installera la table, si elle n'existe pas. Sur register_uninstall_hook()
, je supprime les tables personnalisées.