簡體   English   中英

在php和mysql中刪除數據庫行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM