【问题标题】:Wordpress Plugin: Check if table exists, create table and insert large amounts of dataWordpress Plugin:检查表是否存在,创建表并插入大量数据
【发布时间】:2014-04-18 19:39:45
【问题描述】:

我目前有一个运行良好的 wordpress 插件,但现在面临的问题是确保它可以跨任何服务器实例部署。基本上我正在努力做到这一点,因此插件将创建我需要的表,并在激活插件后自动插入大量数据(11k+ 行)。我有导出的 sql 文件,其中包含所有表 (3.8MB)。

我计划实施和自定义的代码如下,但我不确定如何引用 SQL 文件,以及创建 5 个单独的表以及插入所有数据。

//action hook for plugin activation
register_activation_hook( __FILE__, 'callback_plugin' );
//callback function
function callback_plugin(){
    global $wpdb;
    $table_name = $wpdb->prefix . "your-table-name";
    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
        $sql = "CREATE TABLE $table_name (
                id int NOT NULL AUTO_INCREMENT,
                name tinytext NOT NULL
                );";
        //reference to upgrade.php file
        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        dbDelta( $sql );
    }
}

非常感谢任何和所有帮助!

【问题讨论】:

    标签: php mysql wordpress


    【解决方案1】:

    取决于您是在自己的服务器上还是在未知服务器上部署它。

    一次运行需要执行大量 SQL。我会考虑将其构建得更像一个队列系统,并通过基于 AJAX 的导入运行,即:导入 11,000 的第 1 行或其他任何内容。例如,您可能可以批量处理 10 行。

    所以有人激活了插件。

    将他们重定向到“安装屏幕”,说“这可能需要几分钟”

    点击安装按钮

    jQuery 现在循环遍历一个列表并执行 admin-ajax 一次添加 10(例如)行,然后在完成后显示一条消息。

    如果您要在廉价的共享托管公司上尝试此操作,您会遇到超时、部分数据导入等问题。有点乱!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      相关资源
      最近更新 更多