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

u5i3ibmn  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(309)

“我的网站”的文件夹结构如下: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变量的正确字符串?你能帮帮我吗?

nszi6y05

nszi6y051#

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

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

因为mysql将无法解析相对于apachehttpdoc根目录的路径。另请参见mysql文档:
如果指定了local,则该文件将由客户机主机上的客户机程序读取并发送到服务器。文件可以作为完整路径名指定其确切位置。如果作为相对路径名给出,则该名称将相对于启动客户机程序的目录进行解释。

相关问题