Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从第二行开始将.csv文件插入mysql数据库_Php_Mysql_Csv - Fatal编程技术网

Php 从第二行开始将.csv文件插入mysql数据库

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 ".

我正在尝试上载.csv文件,用户可以在其中浏览该文件并上载该文件,然后将数据插入mysql数据库中。但是,由于该行分别包含列名,因此将插入表中的.csv文件的第一行。这是我的代码

<?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'];
}