php 在线导入mysql大数据程序
php在线导入mysql大数据程序
<?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($dataas$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=newmysqli('localhost','root','root','test');
if($mysqli->connect_errno){
exit('数据库连接失败!');
}
$mysqli->query("setnamesutf8");
$error=array();
foreach($data_newas$sql){
$mysqli->query($sql);
$r=$mysqli->error;
if($r)$error[]=$r;
}
print_r($r);
/*
mysql>ALTERTABLEtbl2DISABLEKEYS;
QueryOK,0rowsaffected(0.00sec)
mysql>INSERTINTOtbl2SELECT*FROMtbl1;
QueryOK,2000000rowaffected(36.30sec)
Records:2000000Duplicates:0Warnings:0
mysql>ALTERTABLEtbl2ENABLEKEYS;
QueryOK,0rowsaffected(44.55sec)
*/
适用情况:phpmyadmin导出的sql文件过大,无法导入到线上phpmyadmin中
把该程序和sql文件上传到空间中,用完后删除即可。
分享一个其他网友的方法吧,小伙伴们也可以参考下
$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="insertinto$tablevalues(".$value.")";
printmysql_error();
mysql_query($query);
print$start."";
}
print"ostart";
?>
以上所述就是本文的全部内容了,希望大家能够喜欢。