繁体   English   中英

安装插件时加载data.csv

[英]Load data.csv when installing plugin

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

这是我创建表的代码:

$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操作系统中似乎没有人能正常工作。

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

它触发了以下错误

1148-此MySQL版本不允许使用命令

在所有平台上都没有任何一种加载csv的方法吗? 有什么帮助吗?

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

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

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

[client]
loose-local-infile=1

这是因为该功能打开了一个安全漏洞,并且默认情况下处于禁用状态。 因此,如果要使用它,则必须手动启用它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM