【发布时间】:2015-09-30 08:08:15
【问题描述】:
我有一个向表格添加一些数据的表单。我有一个打印数据的 php 文件。在此页面的每一行中都会打印一个链接,当您单击它时,您将进入一个页面删除该单行。 这个页面叫做 delete.php 但是有一个问题:当单行被删除时,如果我再添加一行,自动增量会打印错误! 例如,如果您删除第 7 行并打印了 13 行,当您添加另一行时,打印的自动增量列将如下所示: 1,2,...,12,14
这里是delete.php的代码:
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
else {
echo "" . mysqli_error($conn);
}
$id=$_GET['id'];
$sql = "DELETE FROM qolak WHERE id='$id'";
if (mysqli_query($conn, $sql)) {
echo "";
for($i=$id+1;$i<=1000;$i++){
$j=$i-1;
$sql = "UPDATE qolak SET id='$j' WHERE id='$i'";
//
if (mysqli_query($conn, $sql)) {
echo "";
} else {
echo "" . mysqli_error($conn);
}
}
}
$rownum=$_GET['rownum'];
$rownum+=1;
$ssql = "ALTER TABLE qolak AUTO_INCREMENT ='$rownum'";
if (mysqli_query($conn, $ssql)) {
echo "";
} else {
echo "" . mysqli_error($conn);
}
mysqli_close($conn);
这是我的问题:
$ssql = "ALTER TABLE qolak AUTO_INCREMENT ='$rownum'";
此查询不会动态更改自动增量 请帮忙!!!
【问题讨论】:
-
你想要做的是无用
-
我第二个@u_mulder 声明,这是一个无用的步骤。另外,如果
$rownum是AUTO_INCREMENT,你为什么要引用它作为字符串...AUTO_INCREMENT ='$rownum'?另见stackoverflow.com/questions/970597/… -
您对 SQL 注入持开放态度。永远不要将用户输入直接传递给查询。
$id=$_GET['id']; $sql = "DELETE FROM qolak WHERE id='$id'";使用准备好的语句。 stackoverflow.com/questions/60174/…
标签: php mysql dynamic auto-increment