PHP - 从数据库中只删除一个表

时间:2015-02-08 19:32:54

标签: php mysql database sql-drop

我已经搜索了很长时间,并没有找到正确的答案,我想从数据库中只删除一个表。所以我有这个:

<?php

$database_name = "XXXXXX";

if (!$link = mysql_connect('XXXXXX', 'XXXXXX', 'XXXXXX')) {
  die("Could not connect: " . mysql_error());
}

$sql = "SHOW TABLES FROM $database_name";
if($result = mysql_query($sql)){

  while($row = mysql_fetch_row($result)){
    $found_tables[]=$row[0];
  }
}
else{
  die("Error, could not list tables. MySQL Error: " . mysql_error());
}

 foreach($found_tables as $table_name){
  $sql = "DROP TABLE $database_name.$table_name";
  if($result = mysql_query($sql)){
    echo "Success - table $table_name deleted.";
  }
  else{
    echo "Error deleting $table_name. MySQL Error: " . mysql_error() . "";
  }
}
?> 

它将列出数据库中的所有表并删除所有主题,但我想逐个删除它们。像这样的东西:

  

delete.php?项目= ONE_OF_TABLE

通过查询字符串使用表名或...来删除表。

2 个答案:

答案 0 :(得分:1)

首先看看mysql function deprecated

然后您的SQL语法必须由WHERE table_name LIKE 'ONE_OF_TABLE'

进行编辑

或用$ _GET ['item']

替换ONE_OF_TABLE

答案 1 :(得分:0)

发布的代码完全符合您的要求 - 它会在一个循环中逐个删除表。如果你的意思是 - “向最终用户显示表格,然后逐个删除它们” - 你应该打印SHOW TABLES查询的结果并期望其他一些用户交互。