2010-03-07 80 views
-3

我創建窗體加載sql文件,並使用fopen函數頂部打開的文件,並閱讀本,但是當想要執行此數據到數據庫不工作? 我的代碼有什麼問題?如何從文件讀取數據並執行到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 2010-03-07 16:59:27

+4

@Ninefingers - 根據需要回答或不回答。但投票應該反映問題的優點,而不是提問者的公民素質。 – APC 2010-03-07 17:09:21

回答

0

您的腳本假定每行只有一條SQL語句,沒有空白或註釋。如果情況並非如此,那麼您需要手動讀取和解析文件,或將文件重定向到可執行文件並讓其處理SQL語句。

1

也許你應該使用fgets而不是fgetc,而你閱讀線條。

相關問題