-1

我最近做了一个 PHP,应该这样做;如果单击链接删除我的一个 MYSQL 表中的某一行。

下面的脚本包含所有内容,但链接指向[href=delete_ac.php?id etc...]页面,但是当页面激活时,它会回ERROR显而不是删除该行。

<h1>Members</h1> 
<table> 
    <tr> 
        <th>ID</th> 
        <th>Username</th> 
        <th>E-Mail Address</th> 
        <th></th>
    </tr> 
    <?php foreach($rows as $row): ?> 
        <tr> 
            <td><?php echo $row['id']; ?></td> 
            <td><?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8'); ?></td> 
            <td><?php echo htmlentities($row['email'], ENT_QUOTES, 'UTF-8'); ?></td> 
            <td><a href="delete_ac.php?id=<?php echo $row['id']; ?>">delete</a></td> 
        </tr> 
    <?php endforeach; ?> 
</table>

delete_ac.php 下面的脚本应该删除它,但它不是

<?php

    require("../php/bp-connectionAdmin.php");

    $id=$_GET['id'];

    $query = "DELETE FROM `users` WHERE `id` = $id";
    $result = mysql_query($query);

   if ($result) {
        echo "Successful";
   } else {
        echo "ERROR";
   }
?> 
4

2 回答 2

0

在 $query = "DELETE ..

一个

echo "DELETE FROM `users` WHERE `id` = $id";
die;

然后你会看到哪里出了问题。我个人会删除',假设id =整数,你将拥有:

$query = "DELETE FROM users WHERE id=$id";

如果没有,请直接在“数据库”窗口中尝试该 echood 查询,您将看到问题所在。

很可能您应该将您的线路更改为

 $id=intval($_GET['id']);

这也更安全!

于 2013-08-04T17:37:51.927 回答
0

ID只有数字吗?在 $id 周围添加引号没有帮助吗?

$query = "DELETE FROM `users` WHERE `id`='$id'";
mysql_query($query);

不确定……但试一试!

于 2013-08-04T17:26:30.947 回答