2010-03-07 38 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,而你阅读线条。

相关问题