我有一个 MYSQL 数据库,如下所示:
id name orderID
19 James 0
20 Chrales 1
24 Michelle 2
...
我有一个 PHP 代码可以从 mysql 数据库中删除记录,并且工作正常。
这是删除的代码:
if (isset($_GET['del'])) {
$del = $_GET['del'];
$sql = "DELETE FROM MYTABLE WHERE id='$del'";
$query = mysqli_query($db_conx, $sql);
printf("<script>location.href='index.php'</script>");
exit();
}
我需要做的是每次从 MYSQL 数据库中删除记录时重置 orderID
列。
因此,orderID
始终为 0、1、2、3、4、5 等等......
有人可以就此提出建议吗?
如有任何帮助,我们将不胜感激。
编辑:
orderID 不是自动递增。
最佳答案
删除订单时不要重新编号。
假设您的应用通过电子邮件告诉用户“您的 orderid 是 25”,然后当他们访问您的网站时,发现 orderid 已经重新编号并且他们的 orderid 现在是 24。很困惑。
id 不是连续的。它们不是序数。
我在@splash58 的评论中看到了建议,但那真的很贵。如果表中有 1000 万行带有 orderId > $delOrder
怎么办?
PS:您的代码容易受到 SQL 注入(inject)攻击。至少将 id 转换为整数。
$del = (int) $_GET['del'];
但最好使用查询参数:How can I prevent SQL injection in PHP?
关于PHP:从 mysql 中删除并重置 MYSQL 数据库中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43481761/