安装插件时加载data.csv

时间:2016-02-20 09:19:49

标签: php mysql wordpress csv wordpress-plugin

我是wordpress插件开发的新手。我想在有人安装插件并将csv文件中的daata填充到表中时创建一个新表。

这是我创建表的代码:

$sql = "CREATE TABLE $table_name (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `location` varchar(150) NOT NULL,
    `slug` varchar(150) NOT NULL,
    `population` int(10) unsigned NOT NULL,
       PRIMARY KEY (id) 
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8";

$wpdb->query($sql);

运行后,该表已创建。

问题是我发现很难将data.csv填充到表中。

在windows xampp中它正在运行

$current_plugin_dir = dirname(__FILE__);
$current_plugin_dir = str_replace("\\","\\\\",$current_plugin_dir);
$current_plugin_dir = $current_plugin_dir . '\\\\data.csv';
$sql = "LOAD DATA LOCAL INFILE '$current_plugin_dir' INTO TABLE $table_name";
$wpdb->query($sql);

虽然实时服务器不起作用......但是下面的代码可以工作......

$current_plugin_dir = $current_plugin_dir.'/data.csv';
$sql = "LOAD DATA LOCAL INFILE '$current_plugin_dir' INTO TABLE $table_name";
$wpdb->query($sql);

但是在我的ubuntu操作系统中似乎没有人工作..我调试了它似乎跟随查询在ubuntu灯环境上运行

LOAD DATA LOCAL INFILE '/var/www/html/testwp/wp-content/plugins/plugin-name/data.csv' INTO TABLE test_population

并触发了以下错误

  

1148 - 此MySQL版本

不允许使用命令

在所有平台上加载csv有什么单一方法吗?有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以在设置连接时将其指定为附加选项:

mysql -u myuser -p --local-infile yourdatabase

或将其放在my.cnf文件中:

[client]
loose-local-infile=1

这是因为该功能会打开一个安全漏洞,默认情况下处于禁用状态。所以你必须手动启用它,以备你想要使用它。

另一个选择是使用fopen()和通常的sql插入来读取文件。