Php 将csv文件数据插入mysql表时出现问题

Php 将csv文件数据插入mysql表时出现问题,php,html,mysql,csv,Php,Html,Mysql,Csv,我想从html中的文件输入元素中获取一个文件。我在输入类型文件中设置了name属性。 但是我不能得到它。请帮我解决这个问题。 我的php代码是: function csv_to_array($filename='', $delimiter=',') { if(!file_exists($filename) || !is_readable($filename)) return FALSE; $header = NULL; $data = array(); i

我想从html中的文件输入元素中获取一个文件。我在输入类型文件中设置了name属性。 但是我不能得到它。请帮我解决这个问题。 我的php代码是:

function csv_to_array($filename='', $delimiter=',')
{
    if(!file_exists($filename) || !is_readable($filename))
    return FALSE;
    $header = NULL;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== FALSE)
    {
        while (($row = fgetcsv($handle, 10000, $delimiter)) !== FALSE)
        {
            if(!$header)
            $header = $row;
            else
            $data[] = array_combine($header,$row);
        }
        fclose($handle);
    }
    return $data;
}
if(isset($_POST['submit']))
{
    $count=0;
    $file_name=basename($_FILES['csv']['name']);
    $upload_path="upload_files/".time()."_".$file_name;
    move_uploaded_file($_FILES['csv']['tmp_name'], $upload_path);
    $file_path = 'upload_files/'.$file_name;
    $result = csv_to_array($file_path);
    foreach($result as $results)
    {
        $question=addslashes($results['question']);
        $que_img=addslashes($results['question_img']);
        $img_for=addslashes($results['img_for']);
        $option1=addslashes($results['option1']);
        $option2=addslashes($results['option2']);
        $option3=addslashes($results['option3']);
        $option4=addslashes($results['option4']);
        $corrct_ans=addslashes($results['correctanswer']);
        $justification=addslashes($results['justification']);
        $subject_id=$_POST['subjectid'];
        $pgroup=addslashes($results['pgroup']);
        $karea=addslashes($results['karea']);
        $mock=addslashes($results['mock']);
        $email_ins = "insert into online_questions(question,question_img,img_for,option1,option2,option3,option4,correctanswer,justification,subjectid,pgroup,karea,mock) values ('$question','$que_img','$img_for','$option1','$option2','$option3','$option4','$corrct_ans','$justification','$subject_id','$pgroup','$karea','$mock')";
        if(mysql_query($email_ins))
        {
            $count++;
        }
    }
    if($count!=0)
    {
         header("location:upload_questions.php?msg=success");
    }
    else 
    {
        //header("location:upload_questions.php?msg=error");
        $rightside .= '<div class="msg-error"><h4>Error:'.mysql_error().'</h4></div>';
    }
}
else 
{
    $rightside .= '<form method="POST">
    <fieldset><legend>Upload questions</legend>
    <ul class="align-list"><li><label for="test-username">Select Subject :</label>
    <select name="subjectid" class="required">
        <option>-----Select-----</option>
        <option value="8">PMP Preparatory Program</option>
        <option value="9">Primavera</option>
        <option value="10">Microsoft Project [MSP]</option>
   </select></li>
   <li><label for="test-username">Upload CSV : </label><input name="csv" type="file" /></li>
   <li><label for="test-username"></label><input type="submit" name="submit" value="Submit" /></li>
   </fieldset></form>';
}
函数csv到数组($filename='',$delimiter='',')) { 如果(!file_存在($filename)| |!是否可读($filename)) 返回FALSE; $header=NULL; $data=array(); if(($handle=fopen($filename,'r'))!==FALSE) { while(($row=fgetcsv($handle,10000,$delimiter))!==FALSE) { 如果(!$header) $header=$row; 其他的 $data[]=数组_组合($header,$row); } fclose($handle); } 返回$data; } 如果(isset($_POST['submit'])) { $count=0; $file_name=basename($_FILES['csv']['name']); $upload\u path=“upload\u files/”.time().“\uu”。$file\u name; 移动上传的文件($上传文件['csv']['tmp\U名称'],$upload\U路径); $file\u path='upload\u files/'。$file\u name; $result=csv_到_数组($file_路径); foreach($result作为$results) { $question=addslashes($results['question']); $que_img=addslashes($results['question_img']); $img_for=addslashes($results['img_for']); $option1=addslashes($results['option1']); $option2=addslashes($results['option2']); $option3=addslashes($results['option3']); $option4=addslashes($results['option4']); $correct_ans=addslashes($results['correct answer']); $justification=addslashes($results['justification']); $subject\u id=$\u POST['subject']; $pgroup=addslashes($results['pgroup']); $karea=addslashes($results['karea']); $mock=addslashes($results['mock']); $email_ins=“插入在线问题(问题、问题、img、img、选项1、选项2、选项3、选项4、正确答案、理由、主体、pgroup、karea、mock)值(“$question”、“$que_img”、“$img for”、“$option1”、“$option2”、“$option3”、“$option4”、“$correct_ans”、“$justifications”、“$subject_id”、“$pgroup”、“$karea”、$mock”); if(mysql\u查询($email\u-ins)) { $count++; } } 如果($count!=0) { 标题(“位置:upload_questions.php?msg=success”); } 其他的 { //标题(“位置:upload_questions.php?msg=error”); $rightside.='Error:'.mysql_Error()'; } } 其他的 { $rightside.=' 上传问题
  • 选择主题: -----挑选----- PMP预备计划 普里马维拉 微软项目[MSP]
  • 上传CSV:
  • '; }
    如何获取上述html编码的文件和文件名。

    请尝试以下操作:已编辑

    <?php
    function csv_to_array($filename='', $delimiter=',')
    {
        if(!file_exists($filename) || !is_readable($filename))
        return FALSE;
        $header = NULL;
        $data = array();
        if (($handle = fopen($filename, 'r')) !== FALSE)
        {
            while (($row = fgetcsv($handle, 10000, $delimiter)) !== FALSE)
            {
                if(!$header)
                $header = $row;
                else
                $data[] = array_combine($header,$row);
            }
            fclose($handle);
        }
        return $data;
    }
    if(isset($_POST['submit']))
    {
        $count=0;
        $file_name=$_FILES['csv']['name'];
        echo $_FILES['csv']['name'];
        $upload_path="upload_files/".time()."_".$file_name;
        move_uploaded_file($_FILES['csv']['tmp_name'], $upload_path);
        $file_path = 'upload_files/'.$file_name;
        echo $file_path;
        $result = csv_to_array($file_path);
        foreach($result as $results)
        {
            $question=addslashes($results['question']);
            $que_img=addslashes($results['question_img']);
            $img_for=addslashes($results['img_for']);
            $option1=addslashes($results['option1']);
            $option2=addslashes($results['option2']);
            $option3=addslashes($results['option3']);
            $option4=addslashes($results['option4']);
            $corrct_ans=addslashes($results['correctanswer']);
            $justification=addslashes($results['justification']);
            $subject_id=$_POST['subjectid'];
            $pgroup=addslashes($results['pgroup']);
            $karea=addslashes($results['karea']);
            $mock=addslashes($results['mock']);
            $email_ins = "insert into online_questions(question,question_img,img_for,option1,option2,option3,option4,correctanswer,justification,subjectid,pgroup,karea,mock) values ('$question','$que_img','$img_for','$option1','$option2','$option3','$option4','$corrct_ans','$justification','$subject_id','$pgroup','$karea','$mock')";
            if(mysql_query($email_ins))
            {
                $count++;
            }
        }
        if($count!=0)
        {
             header("location:upload_questions.php?msg=success");
        }
        else 
        {
            //header("location:upload_questions.php?msg=error");
            $rightside .= '<div class="msg-error"><h4>Error:'.mysql_error().'</h4></div>';
        }
    }
    else 
    {
        $rightside .= '<form  method="post" accept-charset="utf-8" enctype="multipart/form-data">
        <fieldset><legend>Upload questions</legend>
        <label for="test-username">Select Subject :</label>
        <select name="subjectid" class="required">
            <option>-----Select-----</option>
            <option value="8">PMP Preparatory Program</option>
            <option value="9">Primavera</option>
            <option value="10">Microsoft Project [MSP]</option>
       </select>
      <label for="test-username">Upload CSV : </label><input name="csv" type="file" />
       <label for="test-username"></label><input type="submit" name="submit" value="Submit" />
       </fieldset></form>';
    }
    echo $rightside;
    
    ?>
    
    
    
    <form  method="post" accept-charset="utf-8" enctype="multipart/form-data">