从CSV导入数据并将其插入Mysql

时间:2019-03-31 01:11:51

标签: php database csv

我正在尝试使用CSV脚本从CSV文件导入数据并将其插入Mysql数据库表。到目前为止,我已经设法收到消息alert('Import done'),但是我总是收到此错误:

enter image description here

有人知道为什么我总是会收到此错误吗? 我试图以不同的方式插入数据,但它们似乎总是出现相同的错误:

$item1 = mysqli_real_escape_string($conn, $data[1]);
$item1 = mysqli_real_escape_string($conn, $_POST($data[1]));
$item1 = $_POST($data[1]); 

这是我的代码:

<?php
include('Conexion.php');
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))
            {
                /*$item1 = mysqli_real_escape_string($conn, $data[1]);
                $item1 = mysqli_real_escape_string($conn, $_POST($data[1]));*/
                $item1 = $_POST($data[1]); /*This is line 15*/

                $query = "INSERT INTO excel(title) values('$item1')";
                mysqli_query($conn, $query);
            }
            fclose($handle);
            echo "<script>alert('Import done');</script>";
        }
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
</head>
<body>
<form method="post" enctype="multipart/form-data">
    <div align="center">
        <label>Select the CSV:</label>
        <input type="file" name="file" />
        <input type="submit" name="submit" value="Import" class="btn btn-info" />
    </div>
</form>
</body>
</html>

这是我的桌子:

CREATE TABLE excel (
  excercise_id int(11) NOT NULL AUTO_INCREMENT,
  title text,
  PRIMARY KEY (excercise_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

1 个答案:

答案 0 :(得分:1)

文件中有几列?

但是,我认为您可以尝试以下方法:

 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
     if (isset($data[1])) {         
         $item1 = $data[1];
         $query = "INSERT INTO excel(title) values('$item1')";
         mysqli_query($conn, $query); 
    } 
}

您可以查看本文档中的第一个示例:https://www.php.net/manual/fr/function.fgetcsv.php