提供个思路:
1.读入SQL文件,可以用OPEN()函数
2.用正则解析SQL,把各条语句分开到数组中
3.执行数组中每个SQL语句.

解决方案 »

  1.   

    单从sql来说,要用事务!执行完一堆sql后再commit!
      

  2.   

    可以考虑直接使用  system()来执行 这些 sql  
    比如: 
    system("mysql -uuser -ppass -h hostname dbname < file.sql");
    当然需要处理返回值。考虑时间会比较长,可以使用 set_time_limit(); 来设置一下执行的时间。
      

  3.   

    $sql = 'select * from aa ; 
    insert into ab(dkfk,kdfja,dkfa) values("dfdkjf","kdjflksa","dkfjalkjd");
    create table dakfj(dkasfk);
    ';
    preg_match_all("/.*;/", $sql, $arr); //假定每句SQL都是以;号做为结束.for($i=0;$i<count($arr[0]);$i++){
    echo $arr[0][$i] . "<br/>"; //这里改成执行 $arr[0][$i];
    }
      

  4.   

    php端执行system("mysql -uuser -ppass -h hostname dbname < file.sql");
    必须知道mysql的安装路径吧?  这样不安全吧
      

  5.   

    ^_^!还是做老实人,自己写了一个函数分析sql文件,切分成若干个sql语句依次运行成功了
    不过还是谢谢各位了!