在wordpress插件中插入.sql文件中的数据

时间:2017-08-25 18:25:16

标签: 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文件并插入数据?

1 个答案:

答案 0 :(得分:0)

一种简单而有效的方法:

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

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