使用php导入csv

时间:2018-09-03 13:32:54

标签: php sql csv mysqli upload

我正在尝试使用表单将CSV文件导入数据库。我已经尝试过LOAD DATA INFILEINSERT INTO语句。两者似乎都可以工作,但是数据库没有收到任何新数据。

index.php(PHP代码)

<?php

include("header.php");
include("connect.php");

if (isset($_POST['submit'])) {
    $filename = $_FILES["file"]["tmp_name"];

    if ($_FILES["file"]["size"] > 0) {
        if (($handle = fopen($filename, "r")) !== FALSE) {
            while (($getData = fgetcsv($handle, 4000, ";")) !== FALSE) {

                /* $query = "LOAD DATA INFILE '".$filename."'
                  INTO TABLE Telefonliste
                  FIELDS TERMINATED BY ';'
                  ESCAPED BY '\'
                  LINES TERMINATED BY '\n'
                  IGNORE 1 LINES"; */

                $query = "INSERT INTO 'Telefonliste' ('Typ','Datum','Name','Rufnummer','Nebenstelle','Eigene Rufnummer','Dauer') VALUES ('" . $getData[0] . "','" . $getData[1] . "','" . $getData[2] . "','" . $getData[3] . "','" . $getData[4] . "','" . $getData[5] . "','" . $getData[6] . "')";

                $result = mysqli_query($link, $query);
            }

            print_r($result);

            if (!isset($result)) {
                echo "Invalid File:Please Upload CSV File.";
            } else {
                echo "CSV File has been successfully Imported.";
            }

            fclose($handle);
        }
    }
}
?>

index.php(HTML代码)

<header>
    <h1>Adminbereich</h1>
    <form action="telefonliste.php">
        <button id="logout" value="Log Out">Log Out</button>
    </form>
</header>

<div class="container">
    <section id="csvUp">
        <form method="post" enctype='multipart/form-data'>
            CSV Hochladen: <input type="file" name="file" id="file">
            <input name="submit" value="importieren" type="submit">
        </form>

    </section>
</div>

<script type="text/javascript">
</script>

connect.php:

<?php 

$link = mysqli_connect("localhost", "root", "root", "Telefon");
if(mysqli_connect_error()) {
    echo "Verbindung zum Server fehlgeschlagen";
} /*else { echo "Verbindung zum Server steht"; }*/ ?>

telefonliste.csv:

这些是第400行中的前3行。由于隐私权政策的缘故,姓名和电话号码被替换了。

Typ;Datum;Name;Rufnummer;Nebenstelle;Eigene Rufnummer;Dauer
4;03.09.18 10:43;Firstname Lastname;0022245561;Mobilteil 1;Internet: 789456123;0:29
1;03.09.18 10:41;Replacment Names;02088885552;Mobilteil 1;Internet: 12024561234;0:02
1;03.09.18 10:35;Summer Roswitha;0201234578;Mobilteil 1;Internet: 020154815632;0:01

页面回显“ CSV文件已成功导入。” ,但不打印$result。所以我真的不知道发生了什么。我尝试过的任何解决方案和解决方案都没有相同的输出。

“ connection.php” 连接到服务器,并且工作正常。我能够获取表数据并将其放入表中。只是无法真正上传它。我还已经通过phpmyadmin使用“使用加载数据的csv” 上传了CSV文件,只有csv无法正常工作。

“ header.php” 中,我包含了 jQuery jQuery UI Bootstrap 的链接。 / p>

感谢您的帮助。

0 个答案:

没有答案