使用php从CSV上传到myphp管理员
我有一个csv文件,每天晚上都会上传到第二天的工作中 这是insert命令:使用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=
$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无论如何,尝试暂时启用调试消息。将这两行添加到“