![](/img/trans.png)
[英]How to limit the CPU load when using LOAD DATA LOCAL INFILE to load csv files into MySQL?
[英]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.