2011-10-26 8 views
1

나는 csv 파일을 업로드하기위한 간단한 스크립트가 있으며 작동합니다. 그러나 헤더가 지정된 데이터를 처리하려면 어떻게해야합니까? 이러한 내 표는 3 열이있는 경우로 : 이름, 성을 주소와 지금 내 csv 파일은 다음과 같습니다헤더에 따라 mysql에 csv 데이터를 삽입하십시오.

Address,FirstName,LastName 
myadd,myfname,mylname 

헤더에 따라 MySQL을로 정확하게 데이터를 삽입하는 방법, 심지어는 테이블 컬럼과 동일한 배열 아니에요 이름?

스크립트를 사용하는 경우 헤더가 삽입되는 경우에도 myadd, myfname 및 mylname을 성, 성 및 주소에 삽입합니다.

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

if (is_uploaded_file($_FILES['filename']['tmp_name'])) { 
    echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; 
    echo "<p>contents:</p>"; 
    readfile($_FILES['filename']['tmp_name']); 
} 


$handle = fopen($_FILES['filename']['tmp_name'], "r"); 

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $import="INSERT into CSVtest($column1,$column2,$column3,$column4,$column5) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')"; 

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

fclose($handle); 

Echo "Done"; 

}

+0

현재 스크립트를 게시 할 수 있습니까? –

+0

@ 에릭 감사합니다. 에릭, 지금 거기에 있습니다. –

+0

이 링크는 fgetcsv를 사용하고 있기 때문에 찾고있는 것일 수 있습니다. http://stackoverflow.com/questions/4409911/how-to-make-the-header-row-be-skipped-in-my-while -loop-using-fgetcsv –

답변

1

당신은 당신이 스크립트를 말한다 : "나는 내 스크립트를 사용하는 경우, 그것은 단지도 헤더뿐만 아니라 삽입됩니다, 이름, 성 및 주소로 myadd, myfname 및 mylname를 삽입합니다. "

스크립트에서 SQL을 생성한다고 가정합니다. 즉, INSERT INTO tablename VALUES (v1, v2, v3)입니다.

그런 식으로 수행하는 대신 이름이 지정된 삽입을 수행합니다. INSERT INTO 사용자 (f1, f2, f3) VALUES ('v1', 'v2', 'v3');

다른 말로하면 sql을 생성하는 스크립트에서 필드 이름을 지정하십시오.