在导入csv到mysql db表期间找不到文件

时间:2016-10-06 15:04:33

标签: php mysql sql import ftp

我网站的文件夹结构如下:www.mysite.it/site/scripts。

在此路径中有两个文件:import.php和tabella.csv。

tabella.csv是一个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

import.php是执行te import的PHP脚本,它是这样的文件:

<?php

    $csvFile = "../scripts/tabella.csv";

    $db = @mysql_connect('****', '****', '****');
    @mysql_select_db('******');

    $query = 'LOAD DATA LOCAL INFILE \' '. $csvFile .' \' 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);

?>

错误是“找不到文件”:我尝试使用'tabella.csv'和realpath(使用realpath PHP函数),但错误始终相同。哪个是我必须分配给$ csvFile变量的正确字符串?你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您应该提供csv文件的绝对路径,例如

$csvFile = "/var/www/htdocs/site/scripts/tabella.csv"

因为mysql无法解析相对于apache httpdoc-root目录的路径。另请参阅Mysql-Doc

  

如果指定了LOCAL,则客户端程序将读取该文件   客户端主机并发送到服务器。该文件可以作为完整文件提供   路径名称以指定其确切位置。如果作为相对路径给出   name,该名称被解释为相对于其中的目录   客户端程序已启动