1

这是链接样式

<a href='del-user.php?id={$row['username']}'>Delete</a>

{$row['username']} 将从 Admin-CMS 用户表中获取用户名字段

现在.....这是单击它时将带您到的内容:

del-user.php?id=billy

现在我正在尝试什么

我想阅读链接并删除用户名为 billy 的行

这是我的 del-user.php 文件

<?php
  if($_GET['id'] != ""){
    $userID = $_GET['id'];
    $sql = "DELETE FROM users WHERE username='".$userID."'";
    $query  = mysql_query($sql);
  }
?>

我究竟做错了什么?顺便说一句,我的数据库设置是

TABLE   is called :     users
COLUMN  is called :     username
4

2 回答 2

0

首先,转义您的数据。或者使用准备好的语句。您的代码容易受到 SQL 注入的攻击。

其次,不要使用mysql库。它们是折旧的。你需要mysqli改用。

第三,你的连接指针在哪里?您需要在某处创建一个并将其传递给您的查询函数。

$con = mysqli_connect(...);
$result = mysqli_query($con, $sql);
于 2013-10-19T23:30:50.960 回答
0

我刚刚在服务器上运行了一个测试,尽管我必须编辑才能在我的环境中运行,并且它运行正确。

我使用的整个文件是:

<?php
include_once('pre_load.php');
login_required();
$auth = Authentication::instance();
$db   = CDatabase::instance();

if(array_key_exists('id', $_GET) && !in_array($_GET['id'], array(0, ""))
{
    $userID = (is_string($_GET['id']) && ctype_digit($_GET['id'])) ? $_GET['id'] : FALSE ;
    if ($userID)
    {
        $sql    = "DELETE FROM `bans` WHERE `id` ='".$userID."'";
        $query  = $db->execute($sql);
        echo '<p>Row Deleted</p>';
    }
    else
    {
        echo '<p>Invalid ID</p>';
    }
}
?>

这一切都运行正确,这让我想到了这个问题:

那是你的整个文件吗?如果是这样,您如何连接到数据库以启动删除?

代码本身看起来是正确的,我没有发现任何错误,但是您将其发布为文件这一事实质疑是否包含数据库连接。

在该文件中包含数据库连接(如果不是),您的问题就会结束。

如果数据库连接实际上在文件中,请在此处发布,我将进行更多故障排除。

于 2013-10-20T00:37:38.940 回答