php - 从 CSV 导入数据并将其插入 Mysql
问题描述
我正在尝试使用 PHP 脚本将数据从 CSV 文件导入并插入到 Mysql 数据库表中。到目前为止,我已经设法得到消息alert('Import done')
,但我总是收到这个错误:
有谁知道为什么我总是收到这个错误?我试图以不同的方式插入数据,但它们似乎总是得到相同的错误:
$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 ;
解决方案
您的文件中有多少列?
但是,我认为你可以试试这个:
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
推荐阅读
- php - 将 MysqlData 转换为 JSON
- python - 在 Discord 中更改机器人的头像
- html - div元素的CSS骨架动画
- sql-server - 插入到 sql server 的温和方式
- angular - @auth0/auth0-angular 中是否有使用电子邮件和密码登录的方法?
- mysql - SQL查询根据开始和结束时间查找并发会话
- typescript - 未提供“invokeMiddleware”的参数
- javascript - 在 JavaScript 中转义撇号等
- javascript - 如何在反应中更改日期格式?
- sql - SQL。比较当前行的值与上一行的相同比较结果的值