php 删除mysql数据库中有特定前缀的表

这篇博客介绍了一个PHP函数,用于删除MySQL数据库中具有特定前缀的表。函数`deldata`接受数据库名和表前缀作为参数,通过连接数据库,获取所有表的状态,然后检查每个表的名称,如果前缀匹配则执行删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <?php
/*xuanfunction 删除数据库中有特定前缀的表
 *$dbname 数据库名
 *$tableflag 表前缀,这里标志出是哪一个用户,如表s00002_goods前缀为s00002
 */
function deldata($dbname,$tableflag){
$db_host   = 'localhost';
$db_port    = '3306';
$db_user    = 'chuangye';
$db_pass    = 'chuangye123';
$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="dbg0001";//数据库名
$tableflag="s000002";//要删除的表的前缀,有这个前缀的表才删除,标志出是哪一个用户
deldata($dbname,$tableflag);
//$test=mysubstr("s000002_account_log","_");
//echo $test;
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值