【发布时间】:2016-10-07 07:55:04
【问题描述】:
在我的站点数据库表中导入 CSV 文件时遇到了一个大问题。 使用 Filezilla,我的网站的文件夹结构如下: www.mysite.it/mysite/scripts。在此文件夹(脚本)中,既有要导入 db 的 csv 文件,也有用于执行导入的 PHP 脚本。
CSV 文件(权限设置为 777)是 tabella.csv,它是这样的文件:
"2016-09-02", "100.01", "4005.09", "5000", "1.09", "120.09", "100.5", "200.77"
"2016-09-03", "150.01", "4205.09", "5600", "1.10", "150.09", "300.5", "300.77"
PHP 脚本如下:
<?php
$csvFile = "../scripts/tabella.csv";
$realPath = realpath($csvFile);
$db = @mysql_connect('**.***.***.***', 'Sql******', '*******');
@mysql_select_db('Sql******_*');
$query = 'LOAD DATA LOCAL INFILE \' '. $realPath .' \' INTO TABLE rame
FIELDS TERMINATED BY \',\'
LINES TERMINATED BY \'\r\n\'
IGNORE 1 LINES
(
giorno,
lmedollton,
changedolleuro,
euroton,
lmesterton,
delnotiz,
girm,
sgm
)';
if(!mysql_query($query)){
die(mysql_error());
}
mysql_close($db);
?>
错误是“找不到文件”。我尝试使用绝对路径、单个文件、相对路径。我尝试从查询中删除“本地”。我写信给 Aruba 服务,认为这是权限文件问题,但他们告诉我在查询中使用“本地” .. 进入 Aruba 面板控制,在 PhpMyAdmin 中菜单中没有“权限”项,所以我无法设置它们.. 有人知道我的问题吗?文件路径?权限?
【问题讨论】:
-
您是否确认您实际上可以使用
$realPath中的值从您正在执行LOAD DATA的位置访问CSV? -
你到底为什么要为此编写代码?为什么不直接使用 mysql 控制台?
-
@tim 我可以检查一下吗?我只验证了从 url www.mysite/mysite/scripts/tabella.csv 我可以下载文件..
-
我无法检查,但我认为您需要实际文件系统上的路径,而不是 URL。
-
您已标记托管。请记住,在
/home/xxx或等效项可以是真正变形的用户帐户存根的托管环境中,返回根绝对路径可能很时髦。所以你认为正确的路径在那个虚拟世界中是不真实的。与您的本地开发服务器完全不同。如有疑问,请转到 ssh 并鬼混
标签: mysql csv import hosting aruba