1

简单地说,我想截断然后从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 没有警告或错误消息。

4

2 回答 2

1

您需要删除表名周围的引号,TRUNCATE 和 DROP 才能工作

而不是回显“错误”,您应该显示 MySQL 返回的真正错误,这将帮助您了解发生了什么:

$result2 = mysql_query($query2);
if(!$result2){
    echo "Error '" . mysql_errno() . "' : " . mysql_error();
}
于 2012-12-02T18:20:09.180 回答
1

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

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

您也可能根本不在表名周围使用引号。

于 2012-12-02T18:21:48.870 回答