MYSQL批量删除相同前缀的表
| 数据库账号 | |
| 数据库密码 | |
| 数据库 | |
| 删除前缀 | (例如:apoyl_) |
| 帮助 | |
/* author:凹凸曼(LYC)
/* email: jar-c@163.com
/* url : http://www.apoyl.com/
*/
if($_POST['apoyl']){
//参数获取及过滤
$params=array();
foreach($_POST as $k=>$v){
if(in_array($k,array('ip','user','pwd','dbname','pre'))){
$params[$k]=addslashes(trim($v));
if(empty($params[$k])){
echo '参数为空!';
exit;
}
}
}
//连接数据库
$conn=@mysql_connect($params['ip'],$params['user'],$params['pwd']) or die('数据连接失败');
mysql_select_db($params['dbname'],$conn);
//获取该数据所有表
$rs=mysql_query('show tables',$conn);
while($arr=mysql_fetch_array($rs)){
//判断是否为该前缀的表
$flag=strpos($arr[0],$params['pre']);
if($flag===0){
$re=mysql_query('drop table '.$arr[0],$conn);
if($re){
echo ''.$arr[0].' 删除成功!
';
}else{
echo ''.$arr[0].' 删除失败!
';
}
}
}
}
?>
结:第一种方式与第二区别 更麻烦需要写出所有的表名,而第二种方式,更为简单,