PHP使用数组值截断和删除问题

时间:2012-12-02 18:16:51

标签: php mysql arrays

简单地说,我想截断然后从mysql中的数据库中删除一个表,如下所示:

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没有警告或错误消息。

2 个答案:

答案 0 :(得分:1)

您需要删除表名周围的引号以使TRUNCATE和DROP工作

您应该显示MySQL返回的真实错误,而不是回显“错误”,这有助于您了解会发生什么:

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

答案 1 :(得分:1)

`替换'引号。所以你的查询应该是这样的:

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

您也可能根本不使用表名称旁边的引号。