php - 在 WordPress 插件中插入 .sql 文件中的数据

标签 php mysql wordpress

我正在创建一个 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文件并插入数据?

最佳答案

一种简单而有效的方法:

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

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

关于php - 在 WordPress 插件中插入 .sql 文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887458/

相关文章:

php - 无法获取按 sql 中的组行过滤的行

mysql - 如何在MySQL的同一张表中维护外键的参照完整性?

php - 使用二进制搜索 PHP 查找数组中最后一次出现的元素的索引

php - 如何在发票已支付且订单状态为处理中时取消订单?

php - curl :(26)无法打开文件 "./Users/name/Desktop/thefile.pdf"

php - 动态加载 div 上的 Jquery

mysql - 在mysql中连接3个表

php - Walker 类的 Wordpress 问题

WordPress 无法使样式出列

css - 如何在 Internet Explorer 中使用伪 CSS 替换文本?