web-dev-qa-db-fra.com

dbDelta ne crée pas de table, mais renvoie le succès

J'ai écrit un plugin, qui crée une table lors de l'activation. Sur les _ WP versions précédentes, cela a bien fonctionné.

Maintenant ce n'est pas le cas. Ceci est ma fonction:

function on_activation(){
            global $wpdb;
            $table_name = $wpdb->prefix."tc_competition_data_all_countries_and_fields";
            $sql = "CREATE TABLE $table_name (
              mail VARCHAR(55),
              id VARCHAR(255) NOT NULL,
              time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
              name VARCHAR(255) NOT NULL,
              stra VARCHAR(255) NOT NULL,
              ort VARCHAR(255) NOT NULL,
              uid VARCHAR(255) NOT NULL,
              msg VARCHAR(500) NOT NULL,
              meta1 VARCHAR(500) NOT NULL,
              meta2 VARCHAR(500) NOT NULL,
              UNIQUE KEY id (id)
            );";
            #dbDelta( $sql );
            $c  = dbDelta( $sql );
        }

Il se fie avec ce crochet:

register_activation_hook( __FILE__, array( 'tc_comp_form', 'on_activation' ) );

Quand je fais un vardump pour $c, il retourne que la table a été créée, mais qu'elle n'existe pas.

Quel pourrait être le problème?

Merci beaucoup!

4
user998163

Le problème était dans cette ligne:

time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,

Je l'ai changé pour:

time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

Maintenant ça marche.

3
user998163