简体   繁体   English

尝试使用php和mysql将csv文件上传到mysql

[英]Try uploading csv file to mysql using php and mysql

Good day everyone, I am quite new to php and I really need some help. 大家好,我对php很新,我真的需要一些帮助。 I am trying to upload a csv file to mysql database using php and html form, but it is giving me the following errors: 我正在尝试使用php和html表单将csv文件上传到mysql数据库,但是它给了我以下错误:

Notice: Undefined index: temp_name in C:\\xampp\\htdocs\\import csv\\importcsv.php on line 23 注意:未定义的索引:第23行的C:\\ xampp \\ htdocs \\ import csv \\ importcsv.php中的temp_name

Warning: fopen(): Filename cannot be empty in C:\\xampp\\htdocs\\import csv\\importcsv.php on line 24 警告:fopen():第24行的C:\\ xampp \\ htdocs \\ import csv \\ importcsv.php中的文件名不能为空

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\\xampp\\htdocs\\import csv\\importcsv.php on line 26 警告:fgetcsv()期望参数1为资源,第26行的C:\\ xampp \\ htdocs \\ import csv \\ importcsv.php中给出布尔值

Warning: fclose() expects parameter 1 to be resource, boolean given in C:\\xampp\\htdocs\\import csv\\importcsv.php on line 30 successfully imported 警告:fclose()期望参数1是资源,在C:\\ xampp \\ htdocs \\ import csv \\ importcsv.php中给出的布尔值在第30行成功导入

here is my code 这是我的代码

       <?php 
         ini_set('display_errors', 1);
         error_reporting(E_ALL);
         $db_host = 'localhost';
         $db_user = 'root';
         $db_pwd = '';

         $db = 'mydb';
         $table = 'user';

        $conn = mysqli_connect($db_host, $db_user, $db_pwd) or die("Cant connect to database");


         if(!mysqli_select_db($conn,$db))
         die("Cant select to database");

         if(isset($_POST['submit'])){
         $fname = $_FILES['sel_file']['name'];
         echo 'upload file name: '.$fname.' ';
         $chk_ext = explode(".",  $fname);

         if(strtolower(end($chk_ext)) == "csv"){ 
          $filename = $_FILES['sel_file']['temp_name'];
          $handle = fopen($filename, "r");

          while(($data = fgetcsv($handle, 1000, ",")) != FALSE){
          $sql = "INSERT into user(name,email,phone)  values('$data[0]',   '$data[1]', '$data[2]')";
          mysql_query($sql) or die(mysql_error());
           }
           fclose($handle);
           echo "successfully imported";
          }
           else{
              echo "Invalid file";
            }
         }

      ?>

       <h1>Import csv file</h1>
       <form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post'  enctype="multipart/form-data">
       Import File : <input type='file' name='sel_file' size='20'>
       <input type='submit' name='submit' value='submit'>
      </form>

Can anyone please help me out 任何人都可以帮助我

I have updated some lines in your code. 我已经更新了代码中的一些行。

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';

$db = 'mydb';
$table = 'user';

$conn = mysqli_connect($db_host, $db_user, $db_pwd, $db) or die("Cant connect to database");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (isset($_POST['submit'])) {
    $fname = $_FILES['sel_file']['name'];
    echo 'upload file name: ' . $fname . ' ';
    $chk_ext = explode(".", $fname);

    if (strtolower(end($chk_ext)) == "csv") {
        $filename = $_FILES['sel_file']['tmp_name'];
        $handle = fopen($filename, "r");

        while (($data = fgetcsv($handle, 1000, ",")) != FALSE) {
            $sql = "INSERT into user(name,email,phone)  values('".$data[0]."',   '".$data[1]."', '".$data[2]."')";
            mysqli_query($conn, $sql) or die(mysqli_error($conn));
        }
        fclose($handle);
        echo "successfully imported";
    } else {
        echo "Invalid file";
    }
}
?>

<h1>Import csv file</h1>
<form action='<?php echo $_SERVER["PHP_SELF"]; ?>' method='post'  enctype="multipart/form-data">
    Import File : <input type='file' name='sel_file' size='20'>
    <input type='submit' name='submit' value='submit'>
</form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM