2012-12-02 74 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."`;"; 

您也可以完全不使用周围表名引号。