使用php从CSV上传到myphp管理员

使用php从CSV上传到myphp管理员,php,fgetcsv,Php,Fgetcsv,我有一个csv文件,每天晚上都会上传到第二天的工作中 这是insert命令: $handle = fopen($_FILES['filename']['tmp_name'], "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $data = array_map('mysql_real_escape_string', $data); if($i>0) { $import=

我有一个csv文件,每天晚上都会上传到第二天的工作中

这是insert命令:

 $handle = fopen($_FILES['filename']['tmp_name'], "r");
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
     $data = array_map('mysql_real_escape_string', $data);
        if($i>0) {
    $import="INSERT into patientinfo(PATNUM,PATNAME,AGE,SEX,SCHDT,SCHTM,SURGEON,TASK,PTIS1COMP,PTIS2COMP,PTIS3COMP,SERVTYPE,DURATION,ORRoom,DIAG01,COMMENT1,COMMENT2,COLBY_Arrival_time_1,UR_PreAdmission_Plan_1,UR_IMFM_req_1,UR_IMFM_req_2,Smoke_Signal_MRSA_Positive_1,Smoke_Signal_VRE_Positive_1) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]')";
            mysql_query($import) or die(mysql_error());
            }
            $i++;
        }
我遇到的问题是无论我做什么,
UR\u IMFM\u req\u 2
字段总是上传到最后一列。如果我删除
UR\u IMFM\u req\u 2
字段和最后一个
$data[22]
字段,并从csv中删除该列,则它可以正常上载

以下是一些示例数据-只有Judy Johnson正确上传:

PATNUM    123456      123457          123458
PATNAME    Jane Doe   Sandy Smith       Judy Johnson
AGE         35          47               60
SEX          F           F               F
SCHDT       30816       30816            30816
SCHTM      0700          0915            1200
SURGEON     Surgeon1     Surgeon2         Surgeon1
TASK       Hip           Shoulder         Knee
PTIS1COMP   Ins1          Ins1              Ins1
PTIS2COMP   Ins2          None             None
PTIS3COMP   Ins3          None             None
SERVTYPE     INPT         OBS              INPT
DURATION     1:30         0:45              2:00
LOCADESC     OR1          OR2               OR1
DIAG01       Hip          Shoulder          Knee         
COMMENT1     test          test             test 
COMMENT2      test          test            test
COLBY_Arrival_time_1  06:30   07:00         10:00
UR_PreAdmission_Plan_1  none    Talk to      None
UR_IMFM_req_1  IMFM Req                  
UR_IMFM_req_2  IMFM Req       IMFM Req     
Smoke_Signal_MRSA_Positive_1                     Yes
Smoke_Signal_VRE_Positive_1

执行
var\u dump($data)
并首先查看csv的结果。如果php没有正确地读取它,那么它肯定也不会正确地进入mysql。另外,你在哪里初始化$i?
$i>0
测试的要点是什么?如果您事先没有初始化为非零,您将跳过至少一个从csv返回的数据行。您的迭代器
$i
是以前定义的还是根本没有定义?我们看到的是for循环的一部分还是什么?下面是代码的开始,如果(isset($\u POST['submit']){$i=0;如果(是上传的文件($\u FILES['filename']['tmp\u name']){echo.“。$\u FILES['filename']['name'])。上传成功。;“echo”显示内容:“;readfile($\u FILES['FILES['FILES['FILES]['tmp\u name']);”这里是它显示的数据上传1522987,Guest1,79,F,30816,7:30,SURG1,TOTAL KNEE,NORIDIAN,BLUE CROSS,NOT FOUND,INPT,2:30或03,.RCX3,TOTAL KNEE,530,将看到,需要IMFM,需要IMFM,1533597,Doe Jane,63,F,30816,9:00,SURG1,切除,DAKOTACARE,NOT,NOT FOUND,NOT FOUND,NOT FOUND,OP,0:30或09,.La乳,RT切除术,730,,,TRICare,1537577,SMIT SUE,57,F,30816,12:00,SURG2,I和D肢体,NORIDIAN,DEPARTMENT,NOT FOUND,OBS,1:00,OR03,.RCX1,左膝,1030,,,,,,MRSA阳性“MRSA阳性”不太好:P无论如何,尝试暂时启用调试消息。将这两行添加到“