2013-04-09 4 views
2
내가 여러 파일을 업로드 한 후 MySQL의 DB에 파일 이름을 삽입하려고

는 내 문제는 그것이 아니라 모든 마지막 파일 이름을여러 파일 업로드 SQL/PHP

for($i=0;$i<count($_FILES['file']['size']);$i++){ 
    if(strstr($_FILES['file']['type'][$i], 'image')!==false){ 
     $file = 'uploads/'.time().' - '.$_FILES['file']['name'][$i]; 
     move_uploaded_file($_FILES['file']['tmp_name'][$i],$file); 
     $na=$_FILES['file']['name'][$i]; 

     $sql="INSERT INTO img (img_name) VALUES ('$na');"; 
    } 
} 

통지를 저장하는 이름을 삽입 함께 파일이 성공적으로 업로드되었습니다.

+1

코드를 들여 쓰면 더 명확 해집니다 – Ben

+4

for 루프 외부에서 mysql_query() 함수를 호출하고 있습니까? 그렇다면 당신은 지금 해결책을 안다. –

+0

나는'$ sql'을 설정하는 것을 보지만, 언제 그 쿼리를 실행합니까? –

답변

1
for($i=0;$i<count($_FILES['file']['size']);$i++){ 
    if(strstr($_FILES['file']['type'][$i], 'image')!==false){ 
     $file = 'uploads/'.time().' - '.$_FILES['file']['name'][$i]; 
     move_uploaded_file($_FILES['file']['tmp_name'][$i],$file); 
     $na=$_FILES['file']['name'][$i]; 

     $sql="INSERT INTO img (img_name) VALUES ('$na');"; 
    } 
} 

문자열을 만들고 값을 저장하는 중입니다. 당신은 그것을 실행하지 않았습니다 .. Say $ str = "apple"; 그것의 단지 선언. 루프 후 쿼리를 실행했다고 가정합니다. 10 개의 파일이 있다고 가정 해보십시오. 루프는 10 번 실행되고 $ na에는 마지막 파일 이름이 삽입됩니다.

Soln : 실행 쿼리를 for 루프 내에서 이동하십시오.

for($i=0;$i<count($_FILES['file']['size']);$i++){ 
    if(strstr($_FILES['file']['type'][$i], 'image')!==false){ 
     $file = 'uploads/'.time().' - '.$_FILES['file']['name'][$i]; 
     move_uploaded_file($_FILES['file']['tmp_name'][$i],$file); 
     $na=$_FILES['file']['name'][$i]; 

     $sql="INSERT INTO img (img_name) VALUES ('$na');"; 
     mysql_query($con,$sql); // note: $con is your connection string 
    } 
}