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" ;
?>
|
以上所述就是本文的全部内容了,希望大家能够喜欢。