大SQL文件数据库导入解决方案思路

很多年前的了,记录到博客,方便以后查找,主要思路就是不要一下全部读入内存,利用指针一点一点的往后读取

涉及函数,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文件数据库导入解决方案思路

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏