本帖最后由 007 于 2009-10-8 20:39 编辑
phpmyadmin 运行什么样的语句可以删除 前缀一致的数据库表
如:dedecms的 dede前缀的所有数据库表!
用:上传php文件运行就可以删除了
第一步:新建一个php文件,001.php(随便取个名字)用记事本打开,把下面的代码(1-45行)全部粘贴进去。- <?php
- /*xuanfunction 删除数据库中有特定前缀的表
- *$dbname 数据库名
- *$tableflag 表前缀,这里标志出是哪一个用户,如表cdb_abc前缀为cdb
- */
- function deldata($dbname,$tableflag){
- $db_host = 'localhost';
- $db_port = '3306';
- $db_user = 'user';
- $db_pass = 'pass';
- $connect =mysql_connect($db_host,$db_user,$db_pass);
- mysql_select_db($dbname);
- $result = mysql_query("show table status from $dbname",$connect);
- $data=mysql_fetch_array($result);
- while($data=mysql_fetch_array($result)) {
- $table=mysubstr($data[Name],"_");//截取当前表的下划线以前的字符串得到表前缀
- if($table==$tableflag){ //判断截取的前缀是否等于自己需要的前缀$tableflag,如果是就删除该表
- //测试之用
- /*echo $data[Name];
- echo "<br>";
- echo $table;
- echo "<br>";*/
- mysql_query("drop table $data[Name]");
- }
- }
- return true;
- }
-
- /*截取某个特定字符前的所有字符函数
- *$str 为待截取字符串
- *$flag 特定字符如“_”
- */
- function mysubstr($str,$flag){
- $pos=strpos($str,$flag);
- return substr($str,0,$pos);
- }
- ?>
-
- <?php //test
- $dbname="user";//数据库名
- $tableflag="cdb";//要删除的表的前缀,有这个前缀的表才删除,标志出是哪一个用户
- deldata($dbname,$tableflag);
- //$test=mysubstr("cdb_account_log","_");
- //echo $test;
- ?>
复制代码 第二步:修改
红色部分改成自己的数据相应信息
$db_host = 'localhost';
$db_port = '3306';
$db_user = 'user';
$db_pass ='pass';
红色部分改成自己的
<?php //test
$dbname="user";//数据库名
$tableflag="dede";//要删除的表的前缀,有这个前缀的表才删除,标志出是哪一个用户
第三步:保存文件,上传到网站目录下。用浏览器打开 如我的听力下载网www.hicet.cn/002.php
第四步:打开数据库,看看dede为前缀的数据库表还有没有 |