将csv文件上传到Mysql/PHP //连接到数据库 mysql\u select\u db($database\u csv,$csv); 如果(isset($_POST['submit'])){ 如果(是上传的文件($\u文件['filename']['tmp\u name'])){ 回显“

将csv文件上传到Mysql/PHP //连接到数据库 mysql\u select\u db($database\u csv,$csv); 如果(isset($_POST['submit'])){ 如果(是上传的文件($\u文件['filename']['tmp\u name'])){ 回显“,php,mysql,file,csv,upload,Php,Mysql,File,Csv,Upload,”。$\u文件['filename']['name']。“”; } //将上载的文件导入数据库 $handle=fopen($_FILES['filename']['tmp_name'],“r”); $firstRow=true; $count=0;//跳过CSV文件的第一行 while(($data=fgetcsv($handle,1000,“;”)!==FALSE){ if($count)//跳过CSV文件的第一行 { $name=$data[0]; $description=$data[1

”。$\u文件['filename']['name']。“

”; } //将上载的文件导入数据库 $handle=fopen($_FILES['filename']['tmp_name'],“r”); $firstRow=true; $count=0;//跳过CSV文件的第一行 while(($data=fgetcsv($handle,1000,“;”)!==FALSE){ if($count)//跳过CSV文件的第一行 { $name=$data[0]; $description=$data[1]; $price=$data[2]; $shipping=$data[3]; $quantity=$data[4]; $import=“在结果(名称、说明、价格、装运、数量)中插入值(“$data[0]”、“$data[1]”、“$data[2]”、“$data[3]”、“$data[4]”); mysql_query($import)或die(mysql_error()); } $count++; } fclose($handle); ?> 在PHP/Mysql中使用FileUpload上传.CSV文件,但CSV中的数据全部插入到五列中的一列中,请阅读我的代码和帮助。 提前感谢..

试试这个:

//connect to Database

mysql_select_db($database_csv, $csv);

if (isset($_POST['submit'])) {

if (is_uploaded_file($_FILES['filename']['tmp_name'])) {

echo "<br><center><p>" . " ". $_FILES['filename']['name'] ." " . "</p></center>";
                                                        }

//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
$firstRow = true;
$count = 0; //skip first line of the CSV file 
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

if($count) //skip first line of the CSV file 
{

$name=$data[0];

$description=$data[1];

$price=$data[2];

$shipping=$data[3];

$quantity=$data[4];

$import="INSERT into results (name,description,price,shipping,quantity) VALUES('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')";

mysql_query($import) or die(mysql_error());
}
$count++;
}

fclose($handle);

?>

一个简单的加载数据填充就可以了,而且速度也会快很多

代码:

if($count) //skip first line of the CSV file 
{

$data[0]=$data[0];

$data[1]=$data[1];

$data[2]=$data[2];

$data[3]=$data[3];

$data[4]=$data[4];

$import="INSERT into results (name,description,price,shipping,quantity) VALUES('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')";

mysql_query($import) or die(mysql_error());
}
$count++;
}

我尝试过,但仍然出现以下错误:找不到文件“C:xampp mpphp6A79.tmp”(错误代码:22)尝试加载数据本地加密似乎是相同的错误:找不到文件“C:xampp mpphpE5D0.tmp”(错误代码:22)。但是当我知道我的文件位置时,它的工作方式类似于加载数据填充中的C:/Users/Ernest/Desktop/Book1.csv。谢谢您的帮助。tmp_名称现在是问题所在…“C:xampp mpphpE5D0.tmp”未找到我更新了我的答案,将上载的文件移动到您的桌面,然后使用该路径加载数据填充。您可以将该路径更改为任何您需要的路径希望。此外,请确保将文件移动到源文件文件夹以外的其他文件夹。
<?php
//connect to Database
mysql_select_db($database_csv, $csv);

if (isset($_POST['submit'])) {

    $tmp = $_FILES['filename']['tmp_name'];
    $name = $_FILES['filename']['name'];

    //Can be any full path, just don't end with a /. That will be added in in the path variable
    $uploads_dir = 'C:/Users/Ernest/Desktop';

    $path = $uploads_dir.'/'.$name;

    if(move_uploaded_file($tmp, $path)){
        echo "<br><center><p>". $name ."</p></center>";

        //Import uploaded file to Database
        //If the query fails, try LOAD DATA LOCAL INFILE
        $import = "
        LOAD DATA INFILE '".$path."'
               INTO TABLE results  CHARACTER SET utf8 FIELDS TERMINATED BY ','
               OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES (name, description, price, shipping, quantity);
        ";

        mysql_query($import) or die(mysql_error());
        //If you do not want to keep the csv, you can delete it after this point.
        //unlink($path);

    }else{
        echo 'Failed to move uploaded files';
    }

}
?>