当前位置:首页 > PHP教程 > php应用 > 列表

php 在线导入mysql大数据程序

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-28 11:10:39 浏览: 评论:0 

我想很多人经常会用phpmyadmin进行数据的导入与导出,但是在很多使用虚拟主机的情况下,导出没什么问题但是导入就存在很大的问题了,我想这里我也不多说了站长都会知道了.好了我们现在来看看php把mysql数据库里面的数据导入程序吧.

php 在线导入 mysql 大数据程序

  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. $mysqli=new mysqli('localhost','root','root','test'); 
  32. if($mysqli->connect_errno){ 
  33.   exit('数据库连接失败!'); 
  34. $mysqli->query("set names utf8"); 
  35.  
  36. $error=array(); 
  37. foreach($data_new as $sql){ 
  38.   $mysqli->query($sql); 
  39.   $r=$mysqli->error; 
  40.   if($r$error[]=$r
  41. print_r($r); 
  42.  
  43. /* 
  44.  
  45. mysql>ALTER TABLE tbl2 DISABLE KEYS; 
  46. Query OK, 0 rows affected (0.00 sec) 
  47.  
  48. mysql>INSERT INTO tbl2 SELECT * FROM tbl1; 
  49. Query OK, 2000000 row affected (36.30 sec) 
  50. Records: 2000000 Duplicates: 0 Warnings: 0 
  51.  
  52. mysql>ALTER TABLE tbl2 ENABLE KEYS; 
  53. Query OK, 0 rows affected (44.55 sec) 
  54.  
  55. */ 

适用情况:phpmyadmin导出的sql文件过大,无法导入到线上phpmyadmin中

把该程序和sql文件上传到空间中,用完后删除即可。

分享一个其他网友的方法吧,小伙伴们也可以参考下

  1. $rate_info = file("$table.txt");  
  2. print $n_s = chop($rate_info[0]);  
  3. for($start=1;$start 
  4. {  
  5. $value="";  
  6. for ($i=$start;$i<($start+$n_s-1);$i++)  
  7. {  
  8. $tmp = str_replace("&&jimmy&&"," ",chop($rate_info[$i]));  
  9. $value .= "'".addslashes($tmp)."',";  
  10. }  
  11. $tmp = str_replace("&&jimmy&&"," ",chop($rate_info[$start+$n_s-1]));  
  12. $value .= "'".$tmp."'";  
  13. $query = "insert into $table values (".$value.")";  
  14. print mysql_error();  
  15. mysql_query($query);  
  16. print $start." ";  
  17. }  
  18. print "ostart";  
  19. ?>

Tags: php导入mysql

分享到: