无法从数据库中删除行

时间:2016-04-24 11:12:43

标签: php database mysqli

我想从表中删除一些行。但是当我点击删除时,这只是显示一个空白页面。我确定id值和我的数据库连接。

这是我的代码:

// connect to the database
include('connect-db.php');

// confirm that the 'id' variable has been set
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    // get the 'id' variable from the URL
    $id = $_GET['id'];

    // delete record from database
    if ($stmt = $mysqli->prepare("DELETE FROM my_table WHERE id = ? LIMIT 1")) {
        $stmt->bind_param("i",$id);
        $stmt->execute();
        $stmt->close();
    } else {
        echo "ERROR: could not prepare SQL statement.";
    }
    $mysqli->close();

    // redirect user after delete is successful
    header("Location: Dashboard.php");
} else {
    // if the 'id' variable isn't set, redirect the user
    header("Location: Dashboard.php");
}

2 个答案:

答案 0 :(得分:0)

有一个类似的问题MySQLi Prepared Statement not executing 。基本上,您可以尝试直接在数据库中运行SQL以查看是否出现任何错误。还要确认数据库用户具有删除权限,并且id在数据库中存储为整数。

答案 1 :(得分:-1)

首先我建议你使用$ _POST方法,你可以阅读更多关于GET vs. POST的内容。

尝试使用bindValue()而不是bindParam(),我相信需要为bindParam()声明其他东西我忘了(我也是PHP的新手)。