龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

php中批量删除Mysql中相同前缀的数据表

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
用 php 开发程序时, 批量删除 相同前缀的数据表的两种方法如下: 方法一: 复制代码 代码如下: ? php mysql_connect('','',''); mysql_select_db(''); $ rs = mysql_query ('showtables'); whil

php开发程序时,批量删除相同前缀的数据表的两种方法如下:

方法一:

复制代码 代码如下:

  1. <?php 
  2.  
  3. mysql_connect('','','');  
  4.  
  5. mysql_select_db('');  
  6.  
  7. $rs=mysql_query('show tables');  
  8.  
  9. while($arr=mysql_fetch_array($rs)){  
  10.  
  11. $TF=strpos($arr[0],'class_');  
  12.  
  13. if($TF===0){  
  14.  
  15. $FT=mysql_query("drop table $arr[0]");  
  16.  
  17. if($FT){  
  18.  
  19. echo "$arr[0] 删除成功!<br>";  
  20.  
  21. }  
  22.  
  23. }  
  24.  
  25. }  
  26.  
  27. ?> 

方法二:

这个是以xx_为前缀的示范,大家可以自己更改为想删除的表前缀。

复制代码 代码如下:

  1. <?php 
  2.  
  3. function deldata($dbname,$tableflag){  
  4.  
  5. $db_host = 'localhost';  
  6.  
  7. $db_port = '3306';  
  8.  
  9. $db_user = 'user';  
  10.  
  11. $db_pass = 'password';  
  12.  
  13. $connect =mysql_connect($db_host,$db_user,$db_pass);  
  14.  
  15. mysql_select_db($dbname);  
  16.  
  17. $result = mysql_query("show table status from $dbname",$connect);  
  18.  
  19. $data=mysql_fetch_array($result);  
  20.  
  21. while($data=mysql_fetch_array($result)) {  
  22.  
  23. $table=mysubstr($data[Name],"_");  
  24.  
  25. if($table==$tableflag){  
  26.  
  27. //测试之用  
  28.  
  29. /*echo $data[Name];  
  30.  
  31. echo "  
  32.  
  33. ";  
  34.  
  35. echo $table;  
  36.  
  37. echo "  
  38.  
  39. ";*/  
  40.  
  41. mysql_query("drop table $data[Name]");  
  42.  
  43. }  
  44.  
  45. }  
  46.  
  47. return true;  
  48.  
  49. }  
  50.  
  51. /*截取某个特定字符前的所有字符函数  
  52.  
  53. *$str 为待截取字符串  
  54.  
  55. *$flag 特定字符如"_"  
  56.  
  57. */  
  58.  
  59. function mysubstr($str,$flag){  
  60.  
  61. $pos=strpos($str,$flag);  
  62.  
  63. return substr($str,0,$pos);  
  64.  
  65. }  
  66.  
  67. ?> 

更改之处在:

1.开头处

  1. <?php 
  2.  
  3. function deldata($dbname,$tableflag){  
  4.  
  5. $db_host = 'localhost';  
  6.  
  7. $db_port = '3306';  
  8.  
  9. $db_user = 'user';  
  10.  
  11. $db_pass = 'password'

改为自己的数据库地址,账号和密码即可。

2.结尾处

改为自己的数据库名和想删掉的表前缀。

可以复制上面的代码保存为.php,再上传到空间目录打开。这样我们就能完成数据表的批量删除了。


精彩图集

赞助商链接