-2

我有一点问题这是我的代码`

if(isset($_POST['delete']))
{
    $host="db1.xhost.ro"; // Host name 
    $username="supremesguild_01"; // Mysql username 
    $password="Blizzard951234"; // Mysql password 
    $db_name="supremesguild_xhost_ro01"; // Database name 
    $tbl_name="inventar"; // Table name 
    /*
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="acilogin"; // Database name 
    $tbl_name="inventar"; // Table name 
    */
    // Connect to server and select database.
    $con = mysql_connect($host, $username, $password)or die("cannot connect"); 


    // Get values from form
    $id=$_POST['id'];

    mysql_select_db($db_name, $con)or die("cannot select DB");

    // modify data into mysql
    $sql="DELETE FROM `$tbl_name` WHERE `ID` =$id LIMIT 1 ; ";
    $auto = "SELECT MAX(`ID`) FROM `$tbl_name`";
    ALTER TABLE $tbl_name AUTO_INCREMENT = $auto+1; //this is line 29

    $result=mysql_query($sql, $con)or die('Could not delete data: ' . mysql_error());;

    // if successfully insert data into database, displays message "Successful". 
    if($result){
        header("Location:http://supremesguild.xhost.ro/index.php?pagina=delete_success");
    }

    else {
        header("Location:http://supremesguild.xhost.ro/index.php?pagina=delete_failed");
    }
    mysql_close($con);
    mysql_close();
}

我得到这个错误:解析错误:语法错误,第 29 行 /home/www/free/xhost.ro/supremesguild.xhost.ro/delete.php 中的意外 T_STRING。我试过:ALTER TABLE "$tbl_name" AUTO_INCREMENT = $auto+1;或者 EXEC(ALTER TABLE $tbl_name AUTO_INCREMENT = $auto+1;)但它说 exec 已经出于安全目的禁用我只想在每次删除后重置 AUTO_INCREMENT,有人可以帮助我吗?

4

4 回答 4

2

你没看到这里有什么可疑的地方吗?

$auto = "SELECT MAX(`ID`) FROM `$tbl_name`";
    ALTER TABLE $tbl_name AUTO_INCREMENT = $auto+1; //this is line 29
$result=mysql_query($sql, $con)or die('Could not delete data: ' . mysql_error());;

如果你没有,我会很难过,但既然你没有。

只需将您的查询更改为

$auto = "SELECT MAX(`ID`) FROM `$tbl_name` 
        ALTER TABLE $tbl_name AUTO_INCREMENT = $auto+1;

因为,这$tbl_name;实际上结束了你的查询,所以你不能ALTER TABLE $tbl_name AU在那之后继续说,就像什么都没发生一样。

于 2013-05-25T22:56:42.607 回答
0

您应该非常小心地公开分享您的主机名、用户名和密码,因为现在每个人都可以访问您的数据库,只要他们找到正确的 url 或知道您的主机服务器在哪里!在您发布之前使用虚假数据对其进行虚拟化是一个不错的建议。

于 2013-05-26T01:43:35.757 回答
0

您需要将查询作为字符串放在" ".

于 2013-05-25T22:56:34.687 回答
0

ALTER TABLE不是 PHP 命令。如果您希望此 SQL 查询在您的数据库中执行,您必须将其作为字符串参数发送到mysql_query().

mysql_query("ALTER TABLE $tbl_name AUTO_INCREMENT = $auto+1;");
于 2013-05-25T22:59:16.630 回答