[英]Deleting database rows in php & mysql
我需要一些有關如何動態定位要刪除的行的建議,因為目前,我不得不手動更改PHP腳本以刪除行,但在下一步操作上有些卡住。
所以這是我的物品索引:
<?php
$result = mysqli_query($con,"SELECT * FROM items");
while($row = mysqli_fetch_array($result)) {
echo $row['added'] . $row['content'] . $row['id'];
echo "<br>";
echo "Mark as complete";
echo "<br>";
echo "<a href='delete.php'>Delete Item</a>";
echo "<br>";
echo "<a href='update.php'>Edit Item</a>";
echo "<br>";
echo "<br>";
}
mysqli_close($con);
?>
如果我單擊刪除項目,它將僅刪除我在此處的php中指定的項目:
mysqli_query($con,"DELETE FROM items WHERE id='14'");
mysqli_close($con);
現在,我需要知道如何告訴按鈕刪除鏈接所關聯的項目,因為您已經手動輸入了14,因此將其刪除。 但是我需要一些有關如何刪除數據庫中的行或該行的項目ID的說明或建議。
我最初的想法是可能需要使用$ _GET傳遞有關此行的一些信息?
您需要在delete.php
的URL中delete.php
要刪除的項目的ID。 首先將ID添加到網址中:
echo '<a href="delete.php?id='. $row['id'] .'">Delete Item</a>';
然后,在delete.php
您需要使用$_GET
從URL中獲取參數,並將其插入到delete查詢中:
$id =$_GET['id'];
$result = mysqli_query("DELETE FROM items WHERE id='$id'");
但是,您需要注意,然后任何人都可以進入,以'delete.php?id ='格式輸入URL,它將刪除該項目。 你應該:
項目索引頁面:
echo "<a href='delete.php?id=" . $row['id'] . "'>Delete Item</a>";
刪除文件:
$id = $con->real_escape_string($_GET['id']); // preventing sql injections
$con->query("DELETE FROM items WHERE id='$id'");
安全解決方案:
$id = $con->real_escape_string($_GET['id']);
$sth = $con->prepare("DELETE FROM items WHERE id=?");
$sth->bindParam(1, $id);
$sth->execute();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.