【发布时间】:2020-12-26 05:07:38
【问题描述】:
如何将此文件导入mysql,行间有空格? 通过 phpmyadmin 是可能的,但我需要通过网站进行。
<?php
// Check if file was uploaded & there were no errors
if ($_FILES && $_FILES['csv-file']['error'] == 0) {
$extension = pathinfo($_FILES['csv-file']['name'],PATHINFO_EXTENSION);
// Check if extension is csv then proceed to import
if($extension == 'csv'){
// Open file for reading
$file = fopen($_FILES['csv-file']['tmp_name'], 'r');
// Loop through all rows of file and insert them to database table
while (!feof($file)) {
// Get current row as recordset
$row = fgetcsv($file);
if (!empty($row)) {
$data = [];
$data['numbers'] = htmlentities($row[0]);
$data['tids'] = htmlentities($row[1]);
$data['date'] = htmlentities($row[2]);
$data['time'] = htmlentities($row[3]);
$data['zero'] = htmlentities($row[4]);
$data['terminal_sn'] = htmlentities($row[5]);
$data['space'] = htmlentities($row[6]);
$records[] = $data;
mysqli_query($dbcon,"INSERT INTO employees (".implode(",",array_keys($data)).") VALUES ('".implode("','",array_values($data))."')");
}
}
}else{?>
这是我的带有数据的 .csv 文件:
10222157120501 T0040922 07/09/2020 18:13:56 0 315-525-348 1
10223157120502 T0040923 07/09/2020 18:15:24 0 318-027-497 1
10224157120503 T0040924 07/09/2020 18:15:36 0 316-176-614 1
10225157120504 T0040925 07/09/2020 18:16:25 0 317-377-077 1
【问题讨论】:
-
行间有空格?你的意思是
csv每隔一行有一个空白行吗? -
如果字段之间有空格,请查看手册中
fgetcsv()的分隔符。 -
啊,这更有意义@NigelRen :) 也许是时候去观看大学挑战赛了
-
您的脚本对SQL Injection Attack 开放。即使是if you are escaping inputs, its not safe!,您也应该考虑在
MYSQLI_或PDOAPI 中使用prepared parameterized statements,而不是连接值 -
htmlentities只能在输出到 HTML 文档时使用。
标签: php mysql csv import insert