2015-02-08 80 views
-3

我搜索了很長時間,並且沒有爲這個問題找到正確的答案,我想從數據庫中只刪除一個表格。所以我有這個:PHP - 從數據庫中只刪除一個表格

<?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

降表與表名或...

+0

然後你需要顯示錶或循環?你知道你想放棄的表名嗎? – 2015-02-08 19:34:21

+0

不,我不知道表名,它們是動態的。我完全想按名稱列出所有表格,然後逐個刪除它們。 @Dagon – ITSolution 2015-02-08 19:37:27

+0

你說只有一個,全部都是,這是什麼? – 2015-02-08 19:38:26

回答

1

首先查詢字符串承擔mysql function deprecated

一看那麼你SQL語法必須由WHERE table_name LIKE 'ONE_OF_TABLE'

編輯或用$ _GET替換ONE_OF_TABLE ['item']

0

發佈的代碼完全符合您的要求 - 它在一個循環中逐個刪除表。如果你的意思是 - 「向最終用戶顯示錶格,THAN逐一刪除它們」 - 你應該打印SHOW TABLES查詢的結果並期待其他用戶交互。