2012-12-02 104 views
1

只需拖放的問題,我想截斷,然後在MySQL從數據庫中刪除表如下:PHP截斷,並使用數組值

require_once('connect_m.php'); 

if(isset($_POST['del'])){ 
    if(is_array($_POST['del'])) { 
     foreach($_POST['del'] as $value){ 
      $query = "TRUNCATE TABLE ".$value.""; 
      $result = mysql_query($query); 
      if(!$result){ 
       echo "Wrong"; 
      } 
      $query2 = "DROP TABLE ".$value.""; 
      $result2 = mysql_query($query2); 
      if(!$result2){ 
       echo "Wrong2"; 
      } 
     } 

至於connect_m.php其簡單地建立連接mysql

<?php 
$con = mysql_connect('localhost', 'root', ''); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("stores_m", $con); 

?> 

但是我已經echo$value,我得到了正確的值需要(正確的表名),但代碼不會截斷或刪除任何選擇的表!而最令人討厭的部分是,對於php/mysql,沒有警告或錯誤消息。

+0

您從表名稱周圍的示例代碼中刪除了引號。它現在工作嗎?或者你還有沒有引號的問題? – koopajah

回答

1

您需要刪除周圍TRUNCATE和DROP你的表名引號工作

相反呼應「錯誤」,你應該顯示由MySQL返回真正的錯誤,這將有助於你瞭解發生了什麼:

$result2 = mysql_query($query2); 
if(!$result2){ 
    echo "Error '" . mysql_errno() . "' : " . mysql_error(); 
} 
1

替換'行情由'。所以,您的查詢應該是這樣的:

$query = "TRUNCATE TABLE `".$value."`;"; 
$query2 = "DROP TABLE `".$value."`;"; 

您也可以完全不使用周圍表名引號。