phpオンラインmysqlビッグデータインポートプログラム
8345 ワード
1 <?php
2 header("content-type:text/html;charset=utf-8");
3 error_reporting(E_ALL);
4 set_time_limit(0);
5 $file='./test.sql';
6 $data=file($file);
7
8 echo "<pre>";
9 //print_r($data);
10 $data_new=array();
11 $tmp=array();
12 foreach ($data as $line) {
13
14 $line=trim($line);
15 if(strlen($line)==0){
16 continue;
17 }
18 if(substr($line,0,2)=='--'){
19 continue;
20 }
21 if(substr($line,0,2)=='/*'){
22 continue;
23 }
24 $tmp[]=$line;
25 if(substr($line,-1)==';'){
26 $query=implode('',$tmp);
27 $tmp=array();
28 $data_new[]=$query;
29 }
30
31 }
32
33
34
35 $mysqli=new mysqli('localhost','root','root','test');
36 if($mysqli->connect_errno){
37 exit(' !');
38 }
39 $mysqli->query("set names utf8");
40
41 $error=array();
42 foreach($data_new as $sql){
43 $mysqli->query($sql);
44 $r=$mysqli->error;
45 if($r) $error[]=$r;
46 }
47 print_r($r);
48
49
50 /*
51
52
53 mysql>ALTER TABLE tbl2 DISABLE KEYS;
54 Query OK, 0 rows affected (0.00 sec)
55
56 mysql>INSERT INTO tbl2 SELECT * FROM tbl1;
57 Query OK, 2000000 row affected (36.30 sec)
58 Records: 2000000 Duplicates: 0 Warnings: 0
59
60 mysql>ALTER TABLE tbl2 ENABLE KEYS;
61 Query OK, 0 rows affected (44.55 sec)
62
63
64 */
適用:phpmyadminでエクスポートされたsqlファイルが大きすぎて、オンラインphpmyadminにインポートできません.
このプログラムとsqlファイルを空間にアップロードし、使い終わったら削除すればいいです.