很多年前的了,记录到博客,方便以后查找,主要思路就是不要一下全部读入内存,利用指针一点一点的往后读取
涉及函数,fseek fopen fgets feof
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?php ob_start(); $hander = fopen('back.sql', 'r'); $sqls = []; $sql = ""; $mhand = mysql_connect("localhost","root","root"); mysql_set_charset("utf8",$mhand); mysql_select_db("test"); // ob_clean(); while (!feof($hander)) { $buffer = trim(fgets($hander)) ; if($buffer) { $l = substr($buffer, -1); if($l==";") { $sql .= $buffer; mysql_query($sql); echo $sql."\r\n"; ob_flush(); flush(); // sleep(1); usleep(1000); $sql=""; } else { $sql .= $buffer."\r\n"; } } } mysql_close($mhand); fclose($hander); ?> |
未经允许不得转载:开心乐窝-乐在其中 » 大SQL文件数据库导入解决方案思路