CREATE TABLE WITH DBDelta,无法放置任何默认数据

时间:2018-09-20 作者:Kefka

我想向wp\\U用户添加更多自定义表
但我希望它们包含默认的JSON数据
这一个有效。。。当默认值为空时。。。

    register_activation_hook(__FILE__, \'toto_user_db_setup\');
function toto_user_db_setup() {
    global $wpdb;
    $user_data = "wp_users";

    $charset_collate = $wpdb->get_charset_collate();

    $game_1 = "CREATE TABLE $user_data (
        data1 tinytext DEFAULT \'\' NOT NULL,
        data2 tinytext DEFAULT \'\' NOT NULL,
        data3 mediumtext DEFAULT \'\' NOT NULL,
        data4 mediumtext DEFAULT \'\' NOT NULL,
        data5 longtext DEFAULT \'\' NOT NULL      
    ) $charset_collate;";

    require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
    dbDelta($game_1);

}
但当我在默认值中输入任何值时。。。它根本不起作用

    register_activation_hook(__FILE__, \'toto_user_db_setup\');
function toto_user_db_setup() {
    global $wpdb;
    $user_data = "wp_users";

    $charset_collate = $wpdb->get_charset_collate();

    $game_1 = "CREATE TABLE $user_data (
        data1 tinytext DEFAULT \'test1\' NOT NULL,
        data2 tinytext DEFAULT \'test2\' NOT NULL,
        data3 mediumtext DEFAULT \'hello\' NOT NULL,
        data4 mediumtext DEFAULT \'2132\' NOT NULL,
        data5 longtext DEFAULT \'dada\' NOT NULL      
    ) $charset_collate;";

    require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
    dbDelta($game_1);

}
我确实试着让它在几个小时内工作。。。。。但什么都没有。。。。请帮忙。

1 个回复
最合适的回答,由SO网友:Gray 整理而成

似乎您正在更改users 表-这是WordPress核心表(如果使用wp_ 前缀),这是probably not 一个好主意-使用ID 外键以避免潜在问题使用$wpdb->prefix 获取给定WordPress安装中实际使用的前缀(您不能依赖它wp_, 可配置)

  • dbDelta() 非常特殊,但它应该接受默认值;分配的结果dbDelta() 到变量以查看发生了什么:

    $result = dbDelta($game_1);
    var_dump( $result );
    
  • 结束

    相关推荐

    Replace domain in database

    我的网站受到攻击,所以基本上所有的核心php文件都已损坏。只剩下数据库。现在我在本地主机中进行了尝试。如果我想从这个数据库恢复我的站点,域名是我唯一需要替换字符串的东西吗</我找到了这个教程-Replace string in database - 更改所有表中的域字符串,但几乎不知道将其放入何处以及如何在wordpress中触发它