找回密码
 注册
搜索
免费空间 免费域名 免费AI 老牌主机商首月仅1美分!27美元/年!Spaceship优惠码 Namecheap优惠码阿里云2核2G3M新老续费同享99元/年!
查看: 128|回复: 3

[问题求助] 请教:删除前缀一致的数据库表 语句----问题解决

[复制链接]
发表于 2009-10-7 23:41:27 | 显示全部楼层 |阅读模式
本帖最后由 007 于 2009-10-8 20:39 编辑

phpmyadmin 运行什么样的语句可以删除 前缀一致的数据库表
如:dedecms的  dede前缀的所有数据库表!

用:上传php文件运行就可以删除了
第一步:新建一个php文件,001.php(随便取个名字)用记事本打开,把下面的代码(1-45行)全部粘贴进去。
  1. <?php     
  2. /*xuanfunction 删除数据库中有特定前缀的表   
  3. *$dbname 数据库名   
  4. *$tableflag 表前缀,这里标志出是哪一个用户,如表cdb_abc前缀为cdb
  5. */   
  6. function deldata($dbname,$tableflag){   
  7. $db_host   = 'localhost';   
  8. $db_port    = '3306';   
  9. $db_user    = 'user';   
  10. $db_pass    = 'pass';
  11. $connect =mysql_connect($db_host,$db_user,$db_pass);   
  12. mysql_select_db($dbname);   
  13. $result = mysql_query("show table status from $dbname",$connect);   
  14. $data=mysql_fetch_array($result);   
  15.     while($data=mysql_fetch_array($result)) {   
  16.     $table=mysubstr($data[Name],"_");//截取当前表的下划线以前的字符串得到表前缀   
  17.         if($table==$tableflag){ //判断截取的前缀是否等于自己需要的前缀$tableflag,如果是就删除该表   
  18.         //测试之用   
  19.         /*echo $data[Name];   
  20.         echo "<br>";   
  21.         echo $table;   
  22.         echo "<br>";*/   
  23.         mysql_query("drop table $data[Name]");   
  24.         }   
  25.     }   
  26.     return true;   
  27. }   
  28.    
  29. /*截取某个特定字符前的所有字符函数   
  30. *$str 为待截取字符串   
  31. *$flag 特定字符如“_”   
  32. */   
  33. function mysubstr($str,$flag){   
  34. $pos=strpos($str,$flag);   
  35. return substr($str,0,$pos);   
  36. }   
  37. ?>   
  38.    
  39. <?php //test   
  40. $dbname="user";//数据库名   
  41. $tableflag="cdb";//要删除的表的前缀,有这个前缀的表才删除,标志出是哪一个用户
  42. deldata($dbname,$tableflag);   
  43. //$test=mysubstr("cdb_account_log","_");   
  44. //echo $test;   
  45. ?>  
复制代码
第二步:修改
红色部分改成自己的数据相应信息
$db_host   = 'localhost';   

$db_port    = '3306';   

$db_user    = 'user';   

$db_pass    ='pass';

红色部分改成自己的
<?php //test   
$dbname="user";//数据库名   
$tableflag="dede";//要删除的表的前缀,有这个前缀的表才删除,标志出是哪一个用户

第三步:保存文件,上传到网站目录下。用浏览器打开 如我的听力下载网www.hicet.cn/002.php  
第四步:打开数据库,看看dede为前缀的数据库表还有没有
发表于 2009-10-8 00:06:51 | 显示全部楼层
同问。。。
发表于 2009-10-8 03:05:32 | 显示全部楼层
用通配符?
 楼主| 发表于 2009-10-8 20:34:01 | 显示全部楼层
最后问题我自己搞定了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|免费吧论坛

GMT+8, 2025-1-18 13:19 , Processed in 0.020054 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表