【问题标题】:Cant Find File Error PHP找不到文件错误 PHP
【发布时间】:2015-01-24 11:38:40
【问题描述】:

我在这方面是一个极端的菜鸟,所以请多多包涵。 我有一个小项目,我试图上传一个 csv 文件并将其插入MySQL

我在这里阅读了所有类似的帖子,并尝试了我理解的东西,但我仍然遇到错误:D

    <?php

$databasehost = "localhost";
$databasename = "hutchreport";
$databasetable = "intervalreport";
$databaseusername ="root";
$databasepassword = "";

if(isset($_POST['SUBMIT']))
{

     $fname = $_FILES['csv_file']['name'];
     $chk_ext = explode(".",$fname);

     if(strtolower($chk_ext[1]) == "csv")
     {

         $filename = $_FILES['csv_file']['tmp_name'];

        $con = @mysql_connect($databasehost,$databaseusername,
                              $databasepassword) or die(mysql_error());

        @mysql_select_db($databasename) or die(mysql_error());

        $sql = "LOAD DATA LOCAL INFILE '$fname'
        INTO TABLE intervalreport
        FIELDS TERMINATED BY ','
        LINES TERMINATED BY ',,,\\r\\n'
        IGNORE 1 LINES (intervstartdate, intervstarttime, intervenddate,
                        intervendtime, loginname, loginnumber,
                        callsoffered, callsanswered, abandonedcalls,
                        waittime, staffedtime, auxtime, meeting, 
                        coaching, logintime, inboundtalktime, 
                        avginboundtalktime, inboundacwtime, 
                        avginboundacwtime, inboundhandlingtime, 
                        avginboundhandlingtime, heldcalls, 
                        inboundholdtime, avginboundholdtime, 
                        notreadytime, avgnotreadytime)";

        mysql_query($sql) or die(mysql_error());



         fclose($handle);
         echo "Successfully Imported";
     }
     else
     {
         echo "Invalid File";
     }    
}

?>

<form action='<?php echo $_SERVER["PHP_SELF"];?>' enctype="multipart/form-data" method='post'>
    <input type='file' name='csv_file' size='20'>
    <input type='submit' name='SUBMIT' value='SUBMIT'>
</form>
</body>
</html>

我收到此代码的“找不到文件 'Book1.csv'”。请帮忙!

编辑:终于让它工作了。这是工作代码:

<html>
<head>
<title>
test
</title>
</head>
<body>

<?php
$databasehost = "localhost"; 
$databasename = "hutchreport"; 
$databasetable = "intervalreport"; 
$databaseusername="root"; 
$databasepassword = ""; 
$fieldseparator = ","; 
$lineseparator = "\n";





//$csvfile = "csv/Book1.csv";

if(isset($_POST['SUBMIT']))
{
        $csvfile = $_FILES['csv_file']['tmp_name'];
        move_uploaded_file($csvfile, $csvfile);
        if(!file_exists($csvfile)) {
            die("File not found. Make sure you specified the correct path.");
        }

        try {
            $pdo = new PDO("mysql:host=$databasehost;dbname=$databasename", 
                $databaseusername, $databasepassword,
                array(
                    PDO::MYSQL_ATTR_LOCAL_INFILE => true,
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
                )
            );
        } catch (PDOException $e) {
            die("database connection failed: ".$e->getMessage());
        }

        $affectedRows = $pdo->exec("
            LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
            FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
            LINES TERMINATED BY ".$pdo->quote($lineseparator)."IGNORE 1 LINES (intervstartdate, intervstarttime, intervenddate, intervendtime, loginname, loginnumber, callsoffered, callsanswered, abandonedcalls, waittime, staffedtime, auxtime, meeting, coaching, logintime, inboundtalktime, avginboundtalktime, inboundacwtime, avginboundacwtime, inboundhandlingtime, avginboundhandlingtime, heldcalls, inboundholdtime, avginboundholdtime, notreadytime, avgnotreadytime)");

        echo "Loaded a total of $affectedRows records from this csv file.\n";
} else { echo "invalid file";}

?>

<form action="" enctype="multipart/form-data" method='post'>
        <input type='file' name='csv_file' size='20'>
        <input type='submit' name='SUBMIT' value='SUBMIT'>
    </form>
    </body>
    </html>

【问题讨论】:

    标签: php mysql csv file-handling


    【解决方案1】:

    如果发布与您的错误相关的图像会更好!而且由于 php 它本身已经过期了 mysql 功能,最好使用 PDO 或 mysqli! 我已经更正了部分代码!请检查并让我知道它是否有帮助。

                <?php
    
        $databasehost = "localhost";
        $databasename = "hutchreport";
        $databasetable = "intervalreport";
        $databaseusername ="root";
        $databasepassword = "";
    
        if(isset($_POST['SUBMIT']))
        {
    
             $fname = $_FILES['csv_file']['name'];
             $chk_ext = explode(".",$fname);
    
             if(strtolower($chk_ext[1]) == "csv")
             {
    
                 $filename = $_FILES['csv_file']['tmp_name'];
    
                $con = new mysqli($databasehost,$databaseusername,$databasepassword, databasename);
    move_uploaded_file($filename, $filename);
                $sql = "LOAD DATA LOCAL INFILE {$filename}
                INTO TABLE intervalreport
                FIELDS TERMINATED BY ','
                LINES TERMINATED BY ',,,\\r\\n'
                IGNORE 1 LINES (intervstartdate, intervstarttime, intervenddate,
                                intervendtime, loginname, loginnumber,
                                callsoffered, callsanswered, abandonedcalls,
                                waittime, staffedtime, auxtime, meeting, 
                                coaching, logintime, inboundtalktime, 
                                avginboundtalktime, inboundacwtime, 
                                avginboundacwtime, inboundhandlingtime, 
                                avginboundhandlingtime, heldcalls, 
                                inboundholdtime, avginboundholdtime, 
                                notreadytime, avgnotreadytime)";
    
                $con->query($sql);
    
    
    
                 fclose($handle);
    unlink($filename);
                 echo "Successfully Imported";
             }
             else
             {
                 echo "Invalid File";
             }    
        }
    
        ?>
    
        <form action="" enctype="multipart/form-data" method='post'>
            <input type='file' name='csv_file' size='20'>
            <input type='submit' name='SUBMIT' value='SUBMIT'>
        </form>
        </body>
        </html>
    

    我所做的是我已经上传文件并将其保存到父目录!然后读取文件,当导入完成后我删除了文件!

    希望有效果

    【讨论】:

    • 谢谢!它发出一条错误消息:“致命错误:第 20 行的 D:\xampp\htdocs\reporttest\upload2.php 中找不到类 'mysql'”
    • 终于想通了。 :) 谢谢你的想法。
    • 自动更正的东西很烦人!那是mysqli :|但无论如何很高兴看到您的问题得到解决...
    猜你喜欢
    • 2012-06-30
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2013-12-29
    • 2020-08-26
    • 2015-09-06
    相关资源
    最近更新 更多