2010-03-07 3 views
-3

SQL 형식의 파일을로드하고 파일 열기 함수를 사용하여이 파일을 읽으면이 데이터를 데이터베이스로 실행하고 싶을 때 폼을 생성합니까? 내 코드가 잘못 되었나요?파일에서 데이터를 읽고 MYSQL로 어떻게 실행합니까?

$ofile  = trim(basename($_FILES['sqlfile']['name'])); 
$path = "sqlfiles/".$ofile; 
//$data = settype($data,"string"); 
$file = ""; 

$connect = mysql_connect('localhost','root',''); 
$selectdb = mysql_select_db('files'); 


if(isset($_POST['submit'])) 
{ 
    if(!move_uploaded_file($_FILES['sqlfile']['tmp_name'],"sqlfiles/".$ofile)) 
    { 
    $path = ""; 
    } 

    $file = fopen("sqlfiles/".$ofile,"r") or exit("error open file!"); 

    while (!feof($file)) 
    { 
    $data = fgetc($file); 
    settype($data,"string"); 
    $rslt = mysql_query($data); 
    print $data; 
    } 

    fclose($file); 
} 
+1

보안 문제가 있습니다. 필자가 정확히 무엇인지 알려주는 충분한 PHP를 알지 못합니다. – SLaks

+4

@Ninefingers - 원하는대로 대답하거나 대답하지 않습니다. 그러나 투표는 질문자의 시민 적 특성이 아니라 질문의 장점을 반영해야합니다. – APC

답변

0

스크립트는 공백이나 주석없이 행당 정확히 하나의 SQL 문이 있다고 가정합니다. 그렇지 않은 경우 수동으로 파일을 읽고 구문 분석하거나 파일을 mysql 실행 파일로 리디렉션하여 SQL 문을 처리하게해야합니다.

1

어쩌면 당신은 라인을 읽는 동안 fgetc 대신 fgets을 사용해야합니다.

관련 문제