[英]delete a specific row of a table using php
我设计了一个表格,将显示如下数据:
ID name Delete
1 abc Delete
2 def Delete
用于上述显示的代码是
<?php
$con=mysqli_connect("abc","abc","abc","abc");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM student");
echo "<table class='table table-striped table-bordered table-hover'>
<thead>
<tr>
<th>ID</th>
<th>name</th>
<th>delete</th>
</tr>
</thead>";
while($row = mysqli_fetch_array($result))
{
echo "<tbody data-link='row' class='rowlink'>";
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td><a href='delete.php'>Delete</a></td>";
echo "</tr>";
echo "</tbody>";
}
echo "</table>";
mysqli_close($con);
?>
delete.php 的代码
<?php
$con=mysqli_connect("abc","abc","abc","abc");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"DELETE FROM student WHERE id='$id'");
mysqli_close($con);
header("Location: index.php");
?>
数据库视图是
Id name
1 abc
2 cdf
问题是它没有删除数据,也没有显示任何错误
请注意,根据HTTP 标准, GET
方法不应用于修改数据库中的数据。 因此,您应该使用带有method="POST"
的表单,例如
echo '<td><form method="POST" action="delete.php"><input type="hidden" value="'.$row['id'].'"><input type="submit" value="Delete"></form></td>';
然后对于delete.php ,为了安全起见,您应该考虑将mysqli
与准备好的语句一起使用,或者将 PDO 与准备好的语句一起使用,它们更安全。 我在下面提供了一个示例。
这是一个准备好的语句示例:
<?php
$DB_HOST = "xxx";
$DB_NAME = "xxx";
$DB_USER = "xxx";
$DB_PASS = "xxx";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
$id = (int)$_POST['id'];
$update = $con->prepare("DELETE FROM student WHERE id = ?");
$update->bind_param('i', $id);
$update->execute();
您可能不希望每次删除行时刷新页面,您可以使用ajax请求更快地执行此操作。 您可以从以下链接获取完整代码: 使用ajax从数据库中删除单个行
将GET
参数添加到您的链接:
echo "<td><a href='delete.php?id='".$row['id']."'>Delete</a></td>";
然后在您的delete.php
查询中捕获它:
$id = $_GET['id'];
mysqli_query($con,"DELETE FROM student WHERE id='".$id."'");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.