web-dev-qa-db-ja.com

dbDeltaはTableを作成しませんが、成功を返します

起動時にテーブルを作成するプラグインを書きました。以前のWPバージョンでは、うまくいきました。

今は違います。これは私の機能です:

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 );
        }

それはこのフックに悩まされます:

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

$cにvardumpを実行すると、テーブルが作成されたことを返しますが、存在しません。

問題は何でしょうか。

どうもありがとう!

4
user998163

問題はこの行にありました:

time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,

私はそれを次のように変更しました。

time TIMESTAMP DEFAULT CURRENT_TIMESTAMP

今、それはうまくいきます。

3
user998163