php online import mysql big data program
<?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 class="brush:php;toolbar:false">"; //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) */
Applicable situation: The sql file exported by phpmyadmin is too large and cannot be imported into online phpmyadmin
Upload the program and sql file to the space and delete it after use.
Share a method from other netizens, friends can also refer to it
$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"; ?>
The above is the entire content of this article, I hope you all like it.