php 在线导入 mysql 大数据程序
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<?php header( "content-type:text/html;charset=utf-8" ); error_reporting (E_ALL); set_time_limit(0); $file = './test.sql' ; $data =file( $file ); echo "<pre>" ; //print_r($data); $data_new = array (); $tmp = array (); foreach ( $data as $line ) { $line =trim( $line ); if ( strlen ( $line )==0){ continue ; } if ( substr ( $line ,0,2)== '--' ){ continue ; } if ( substr ( $line ,0,2)== '/*' ){ continue ; } $tmp []= $line ; if ( substr ( $line ,-1)== ';' ){ $query =implode( '' , $tmp ); $tmp = array (); $data_new []= $query ; } } $mysqli = new mysqli( 'localhost' , 'root' , 'root' , 'test' ); if ( $mysqli ->connect_errno){ exit ( '数据库连接失败!' ); } $mysqli ->query( "set names utf8" ); $error = array (); foreach ( $data_new as $sql ){ $mysqli ->query( $sql ); $r = $mysqli ->error; if ( $r ) $error []= $r ; } print_r( $r ); /* mysql>ALTER TABLE tbl2 DISABLE KEYS; Query OK, 0 rows affected (0.00 sec) mysql>INSERT INTO tbl2 SELECT * FROM tbl1; Query OK, 2000000 row affected (36.30 sec) Records: 2000000 Duplicates: 0 Warnings: 0 mysql>ALTER TABLE tbl2 ENABLE KEYS; Query OK, 0 rows affected (44.55 sec) */ |
适用情况:phpmyadmin导出的sql文件过大,无法导入到线上phpmyadmin中
把该程序和sql文件上传到空间中,用完后删除即可。
分享一个其他网友的方法吧,小伙伴们也可以参考下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$rate_info = file( "$table.txt" ); print $n_s = chop ( $rate_info [0]); for ( $start =1; $start { $value = "" ; for ( $i = $start ; $i <( $start + $n_s -1); $i ++) { $tmp = str_replace ( "&&jimmy&&" , " " , chop ( $rate_info [ $i ])); $value .= "'" . addslashes ( $tmp ). "'," ; } $tmp = str_replace ( "&&jimmy&&" , " " , chop ( $rate_info [ $start + $n_s -1])); $value .= "'" . $tmp . "'" ; $query = "insert into $table values (" . $value . ")" ; print mysql_error(); mysql_query( $query ); print $start . " " ; } print "ostart" ; ?> |
以上所述就是本文的全部内容了,希望大家能够喜欢。