【问题标题】:Insert data from .sql file in wordpress plugin在 wordpress 插件中插入 .sql 文件中的数据
【发布时间】:2023-03-29 17:50:01
【问题描述】:

我正在创建一个 wordpress 插件,它需要创建一个表并向其中插入位置数据。该 INSERT 查询中有超过 50000 个位置,因此位于单独的 .sql 文件中。

我需要在激活插件时运行它。我正在创建如下表

function locations_install()
{
    global $wpdb;
    global $locations_db_version;

    $table_name = $wpdb->prefix . 'setfordslocations';

    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
            id int(11) NOT NULL AUTO_INCREMENT,
            town varchar(2000) CHARACTER SET utf8 DEFAULT NULL,
            county varchar(225) NOT NULL,
            country varchar(225) NOT NULL,
            latitude decimal(10,5) DEFAULT NULL,
            longitude decimal(10,5) DEFAULT NULL,
            postcode varchar(10) NOT NULL,
            type varchar(255) NOT NULL,
            PRIMARY KEY  (id)
        ) $charset_collate;";

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

    add_option('locations_db_version', $locations_db_version);
}

我应该如何运行.sql文件并插入数据?

【问题讨论】:

  • 您要为插件自动插入 50,000 行?
  • 是的。这是需要这些位置数据的自定义插件
  • 这是WordPress Development的问题。

标签: php mysql wordpress


【解决方案1】:

一种简单有效的方法:

exec('mysql -u USERNAME -pPASSWORD database_name < /path/to/file.sql')

如果这不是一个选项,您可以打开文件并逐行迭代文件执行插入操作,直到到达 EOF。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 2018-09-22
    • 2018-03-25
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多