0

我遇到了一个问题,我试图从 Mysql 表中删除一行。这是我写的代码:

$sql = "DELETE FROM members WHERE name='$_POST[delmember]'";
$retval = mysql_query($sql);
if(!$retval) {
    die("Couldn't delete data: " . mysql_error());
}

打印我的数据库的代码:

$sql = 'SELECT name FROM members';
$retval = mysql_query($sql, $conn);
if(!$retval) {
        die("Couldn't get data: " . mysql_error());
    }
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
    if($col == $cols) {
            $col = 0;
            echo '</tr><tr>';
        }
        echo '<td align="center"><a class="stats" href="members.html?stats='.$row[0].'">' . $row[0] . '</a></td>';
        $col++;
}

这实际上“清空”了该行,但留下了一个空单元格,当我打印我的数据时实际显示该单元格。然后我必须去 phpMyAdmin 手动删除空白空间。我不明白它为什么这样做。

我仍然是初学者,编程实际上只是我的一种爱好,但如果有人能给我线索并指出正确的方向,我将不胜感激。

非常感谢!

4

2 回答 2

1

为了更好地学习 MySQL 语法,启动一个 MySQL 会话的控制台并直接输入一些命令。您的语法看起来正确,但我们不知道您正在使用的数据库的规则或您正在查看的视图。

很难判断您看到的是 phpMyAdmin 的工件,还是数据库其他方面的结果,或者是您用来“打印”数据的代码的结果。

于 2013-05-19T20:47:24.413 回答
1

像这样试试。

$sql = "DELETE FROM members WHERE name='" . mysql_real_escape_string($_POST["delmember"]) . "'";

顺便说一句,如果name字段不是唯一的,那么按名称删除用户不是一个好主意,您应该使用 id 字段作为主键并使用 id 进行所有操作。

另一件事是使用 mysqli 或 pdo 而不是 mysql。

阅读警告

于 2013-05-19T20:48:51.750 回答