mysql - fatal error - 但它有效 - 不会激活

标签 mysql wordpress plugins fatal-error

一直在为 Wordpress 构建一个自定义插件,该插件可以工作,但不能。

当我使用以下代码激活插件时:

  1. 创建表
  2. 并插入数据(虽然是 3 次?)。

然后得到“插件无法激活,因为它触发了 fatal error 。”

  • 没有创建调试日志
  • 控制台中没有错误。
  • 表单运行并提交

这是创建表函数:

    function db1_install() {
        global $wpdb;
        global $db_version1;
        global $table_name;
        $table_name = $wpdb->prefix . 'myCategories';   
        $charset_collate = $wpdb->get_charset_collate();    
        $sql = "CREATE TABLE $table_name (
            id mediumint(9) NOT NULL,
            item varchar(20) NOT NULL,
            item_cat varchar(20) NOT NULL
            ) $charset_collate;";
        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        dbDelta( $sql );
        add_option( 'db_version1', $db_version1 );    
    } 
    register_activation_hook( __FILE__, 'db1_install' );

这是数据插入功能:

`enter code here`function add_categories(){

    global $wpdb;
    $table_name = $wpdb->prefix . 'myCategories';
    $wpdb->query("INSERT INTO $table_name (id,item,item_cat)
    values (1,'item1','cat1'), (2,'item2','cat1'), (2,'item3','cat4')");
    die();
    return true;
    }
    register_activation_hook( __FILE__, 'add_categories');

有人吗?

最佳答案

我在您的代码中看到的两个潜在问题是,

  1. add_categories() 函数中的 die(); 可能会干扰 WordPress 辨别插件是否已成功激活的能力。
  2. 您对global $table_name;的使用。您不应将表放在全局命名空间中,因为它可能与其他插件发生冲突。

关于mysql - fatal error - 但它有效 - 不会激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014083/

相关文章:

android - 库插件::找不到库资源

mysql - 预览 MySQL 连接的快速方法是什么?

java - Eclipse CDT 新项目模板 - 如何添加包含路径?

php - MySQL 返回双列

javascript - 将网站转换为 wordpress?

html - 如何在 Underscore_S 中居中对齐我的标题图片

css - 将 DIV 扩展到 WordPress 页面容器之外

java - 使用 Eclipse 开发插件时目标平台和依赖项之间的区别

mysql:检查两个日期之间的间隔是否小于1秒

Java MySQL检查数据库中是否存在值