使用PHP将数据从CSV文件插入SQL表

时间:2018-11-22 17:55:11

标签: php mysql sql csv

我需要使用PHP代码将数据从CSV文件导入到SQL表中,我一步一步地遵循了来自YouTube的2个指导,并且总是遇到相同的错误  “ 注意:未定义的偏移量:C:\ xampp \ htdocs中的1 ...”

我复制/粘贴此代码时仅做了一些修改,因为我开始怀疑自己编写的代码是否正确,

<?php

$connect = mysqli_connect("localhost", "websever", "Solna201056", "ts_excel");//databse connectivity
if(isset($_POST["submit"])) {
    if($_FILES['file']['name']) {
        $filename = explode(".", $_FILES['file']['name']);
        if($filename[1] == 'csv') {
            $handle = fopen($_FILES['file']['tmp_name'], "r");
            while($data = fgetcsv($handle))//handling csv file {
                $item1 = mysqli_real_escape_string($connect, $data[0]);
                $item2 = mysqli_real_escape_string($connect, $data[1]);
                //insert data from CSV file
                $query = "INSERT into ts_excel
                                (ts_name, ts_email) 
                          values('$item1','$item2')";

                mysqli_query($connect, $query);
            }
            fclose($handle);
            echo "File sucessfully imported";
        }
    }
}
?>
<!DOCTYPE html>
<html>
<head>
  <title>Import CSV</title>
</head>
<body>
  <form method="post" enctype="multipart/form-data">
    <label>Select CSV File:</label>
    <input type="file" name="file">
    <br>
    <input type="submit" name="submit" value="Import">
  </form>
</body>


</html>

这是sorce,我还创建了一个新数据库和表,其名称与指南中使用的名称完全相同,以确保当我选择文件和文件时,不是我做错了什么升级它,我得到“ 注意:未定义偏移量:SQL表中C:\ xampp \ htdocs 中的1,我认为数据没有被破坏
看看https://imgur.com/YvDdzDV

cvs文件看起来像这样https://imgur.com/5Prr0cH

因此,“ blalabla@gmail.bla”应位于“ ts_email”下。我认为有问题。有什么建议吗?

1 个答案:

答案 0 :(得分:-1)

可能是Excel用制表符将列分开,并且fgetcsv()默认情况下期望用逗号代替。改变一个或另一个,看看进展如何。

相关问题