【问题标题】:PHP - How to remove a user from the database MySQLPHP - 如何从数据库 MySQL 中删除用户
【发布时间】:2017-05-15 13:12:29
【问题描述】:

我创建了一个从数据库中释放用户的表。每个用户都有一行,旁边是一个用于从数据库中删除用户的按钮。问题是当我单击特定按钮时,我不知道如何真正从数据库中删除特定用户。我不知道该怎么做。

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"pl-PL\">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Rezultat zapytania</title>
    <style>
    #container {
      max-width: 1000px;
    }
    </style>
</head>

<body>

<div id="container">
    <table width="1000" align="center" border="1" bordercolor="#d5d5d5"  cellpadding="0" cellspacing="0">
        <tr>
        <?php
        require_once "connect.php";
        $baza = @new mysqli($host, $db_user, $db_password, $db_name); //Połączenie z bazą danych
        $sql = "SELECT id, user, pass, email FROM users";
        $result = $baza->query($sql);
        $ile = mysqli_num_rows($result);

        echo "znaleziono: ".$ile."<br /><br />";
if ($ile>=1)
{
echo<<<END
<td width="50" align="center" bgcolor="e5e5e5"></td>
<td width="50" align="center" bgcolor="e5e5e5">IDUsera</td>
<td width="20" align="center" bgcolor="e5e5e5">NazwaUsera</td>
<td width="20" align="center" bgcolor="e5e5e5">HasloUsera</td>
<td width="20" align="center" bgcolor="e5e5e5">EmailUsera</td>
</tr><tr>
END;
}

    for ($i = 1; $i <= $ile; $i++)
    {

        $row = mysqli_fetch_assoc($result);
        $a1 = $row['id'];
        $a2 = $row['user'];
        $a3 = $row['pass'];
        $a4 = $row['email'];

echo<<<END
<td width="50" align="center"><a class="button_red" href="delete_user.php">Delete</a></td>
<td width="50" align="center">$a1</td>
<td width="100" align="center">$a2</td>
<td width="100" align="center">$a3</td>
<td width="100" align="center">$a4</td>
</tr><tr>
END;

    }


?>


</tr></table>
</div>


</body>
</html>

【问题讨论】:

  • 基本语法:DELETE FROM table WHERE col_x = ? - 你尝试/搜索过什么吗? 现在说实话。编辑:这是一个问题;我希望它得到回答(由你)。所以,你呢?
  • 您可以执行@Fred-ii 提到的所有硬删除,但您也可以创建一个名为 deleted 的列,当值 == 1 时,您不会在结果中显示它。跨度>
  • 您需要使用$_GET$_POST 将id 传递给delete_user.php。由于您使用的是&lt;a&gt; 标签,因此它将是$_GET
  • ...当然是使用准备好的语句 ;-)
  • 恕我直言,这个问题太宽泛了;尝试一些东西,然后在您尝试的代码遇到困难时回来。这样做,你会在这个过程中学到一些东西。

标签: php mysql database delete-row


【解决方案1】:
// create a <td> tag in <tr>
 <td><a href="del.php?user_id={$id}">DEL USER</a></td>

/* del.php */

$user_id = $_GET['user_id'];
// you can add a sql injection filter
$sql = 'DELETE FROM table WHERE user_id = {$user_id}';
$result = $baza->query($sql);

【讨论】:

  • 这是不正确的,您还让它们对 SQL 注入开放。 OP 使用的是 mysqli_ api,而不是 mysql_;这些不同的 API 不会混合使用。你需要调整你的答案。编辑:此评论根据原始答案stackoverflow.com/revisions/41409777/1
  • 研究人员不应使用此 sn-p,因为它没有使用安全实践。
猜你喜欢
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
相关资源
最近更新 更多