我有点问题 这是我的代码 `
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,任何人都可以帮助我吗?
答案 0 :(得分: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
,就像什么都没发生一样。
答案 1 :(得分:0)
您需要将查询作为字符串放在" "
。
答案 2 :(得分:0)
ALTER TABLE
不是PHP命令。如果要在数据库中执行此SQL查询,则必须将其作为字符串参数发送到mysql_query()
。
mysql_query("ALTER TABLE $tbl_name AUTO_INCREMENT = $auto+1;");
答案 3 :(得分:0)
您应该非常小心地公开分享您的主机名,用户名和密码,因为现在每个人都可以访问您的数据库,如果他们找到了正确的网址或知道您的主机服务器在哪里! 在发布之前用虚假数据加以虚假是一个很好的建议。