删除行 php&mysql 动态 link
delete row php&mysql dynamique link
我想制作一个 link 以使用动态 links 和 php 从数据库中删除记录,但我无法弄清楚
这是我的代码:
<?php
$query = "SELECT * FROM posts ";
$result = mysqli_query($connect, $query);
?>
<table>
<tr style="background: #afafaf;">
<th>Id</th>
<th>Title</th>
<th>Action</th>
</tr>
<?php
while($rows = mysqli_fetch_assoc($result)){
echo "<tr>";
echo "<td class=\"center\">".$rows['id']."</td>";
echo "<td>".$rows['title']."</td>";
echo "<td><a href=\"delete_post.php?id=".$rows['id']."\"> delete</a></td>";
echo "</tr>";
}
?>
</table>
输出 link 会像 .../delete.php?id=X
谁能帮我写 delete.php
的代码?
那就是这样的:
$deleteId = $_GET['id'];
$sql = "DELETE FROM posts WHERE id = ".$deleteId;
记得在将变量发送到 MySQL 服务器之前对它们进行转义。
在您的页面中添加以下代码。这首先检查是否设置了 $_GET['id']
。如果是,它只会 运行,这样你就不会得到 Undefined Index 错误。
<?php
if (isset($_GET['id'])) {
$deleteId = htmlspecialchars($_GET['id'], ENT_QUOTES);
$delete = "DELETE FROM `posts` WHERE `id` = " . $deleteId;
}
?>
我也用了htmlspecialchars
to sanitize the user input. You could run some validation using ctype_digit
来确保输入实际上是一个整数。
我建议在 MySQLi 中使用预处理语句来防止 SQL 注入。
编辑 1
ctype_digit
示例。这会检查 id
是否已设置,如果它是一个数字,从技术上讲,您可以只使用 ctype_digit
因为如果 id
为空,则 ctype
将 return false因为 var_dump(ctype_digit(""));
将 return false
,考虑到这个逻辑,必须为 ctype_digit
设置值才能工作 和 它必须是一个整数。
<?php
if (ctype_digit($_GET['id'])) {
$deleteId = htmlspecialchars($_GET['id'], ENT_QUOTES);
$delete = "DELETE FROM `posts` WHERE `id` = " . $deleteId;
}
?>
我想制作一个 link 以使用动态 links 和 php 从数据库中删除记录,但我无法弄清楚 这是我的代码:
<?php
$query = "SELECT * FROM posts ";
$result = mysqli_query($connect, $query);
?>
<table>
<tr style="background: #afafaf;">
<th>Id</th>
<th>Title</th>
<th>Action</th>
</tr>
<?php
while($rows = mysqli_fetch_assoc($result)){
echo "<tr>";
echo "<td class=\"center\">".$rows['id']."</td>";
echo "<td>".$rows['title']."</td>";
echo "<td><a href=\"delete_post.php?id=".$rows['id']."\"> delete</a></td>";
echo "</tr>";
}
?>
</table>
输出 link 会像 .../delete.php?id=X
谁能帮我写 delete.php
的代码?
那就是这样的:
$deleteId = $_GET['id'];
$sql = "DELETE FROM posts WHERE id = ".$deleteId;
记得在将变量发送到 MySQL 服务器之前对它们进行转义。
在您的页面中添加以下代码。这首先检查是否设置了 $_GET['id']
。如果是,它只会 运行,这样你就不会得到 Undefined Index 错误。
<?php
if (isset($_GET['id'])) {
$deleteId = htmlspecialchars($_GET['id'], ENT_QUOTES);
$delete = "DELETE FROM `posts` WHERE `id` = " . $deleteId;
}
?>
我也用了htmlspecialchars
to sanitize the user input. You could run some validation using ctype_digit
来确保输入实际上是一个整数。
我建议在 MySQLi 中使用预处理语句来防止 SQL 注入。
编辑 1
ctype_digit
示例。这会检查 id
是否已设置,如果它是一个数字,从技术上讲,您可以只使用 ctype_digit
因为如果 id
为空,则 ctype
将 return false因为 var_dump(ctype_digit(""));
将 return false
,考虑到这个逻辑,必须为 ctype_digit
设置值才能工作 和 它必须是一个整数。
<?php
if (ctype_digit($_GET['id'])) {
$deleteId = htmlspecialchars($_GET['id'], ENT_QUOTES);
$delete = "DELETE FROM `posts` WHERE `id` = " . $deleteId;
}
?>