Php 从第二行开始将.csv文件插入mysql数据库
我正在尝试上载.csv文件,用户可以在其中浏览该文件并上载该文件,然后将数据插入mysql数据库中。但是,由于该行分别包含列名,因此将插入表中的.csv文件的第一行。这是我的代码Php 从第二行开始将.csv文件插入mysql数据库,php,mysql,csv,Php,Mysql,Csv,我正在尝试上载.csv文件,用户可以在其中浏览该文件并上载该文件,然后将数据插入mysql数据库中。但是,由于该行分别包含列名,因此将插入表中的.csv文件的第一行。这是我的代码 <?php //Connect to Database if (isset($_POST['submit'])) { if (is_uploaded_file($_FILES['filename']['tmp_name'])) { echo "<h1>" . "File ".
<?php
//Connect to Database
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
//db connection
$import="INSERT into csv(id,user,phone) values('$data[0]','$data[1]','$data[2]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
print "Import done";
}else {
echo "sorry";
}
?>
只需调用fgetcsv一次,然后再开始循环其余部分
事实上,我通常用这个成语:
$fh = fopen(...);
$headers = fgetcsv($fh);
while ($row = fgetcsv($fh)) {
$row = array_combine($headers, $row);
echo $row['columnname'];
}
它允许您按名称而不是索引访问列。看看您是否容易受到SQL注入/语法错误的攻击!看见
$handle = fopen($_FILES['filename']['tmp_name'], "r");
fgetcsv($handle, 1000, ","); // pop the headers
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) ...
$fh = fopen(...);
$headers = fgetcsv($fh);
while ($row = fgetcsv($fh)) {
$row = array_combine($headers, $row);
echo $row['columnname'];
}