从表中删除记录的问题
问题描述:
构建新手级用户管理系统。以下代码用于从我的表中删除记录。从表中删除记录的问题
当您单击用户管理页面上的删除链接时,它会使用该ID通过删除文件(此代码)转发。
有人能指出为什么它不起作用,为什么$ result返回false?去容易对我,我是一个完整的新手:)
<?php
$host = 'localhost';
$user = 'tim_williams';
$pass = 'baroness';
$db = 'php_db05';
$link = mysqli_connect($host, $user, $pass, $db);
if(!$link) {
die("Database connection failed: " . mysqli_connect_error());
}
$id = $_GET['id'];
$sql = "DELETE *
FROM registeredusers
WHERE UserID = $id";
$delete = mysqli_query($link, $sql);
//var_dump($delete);
if($delete) {
header('Location: mysql-project-users-manage.php');
exit;
}
?>
答
你有一个SQL语法错误,因为你如果查询成功从来没有检查,你永远不会告诉。在最低限度,你应该有类似
$result = mysqli_query(...) or die(mysqli_error($link));
具体做法是:
$sql = "DELETE *
FROM registeredusers
不指定在delete
查询字段。您正在删除整行,因此指定字段(包括所有字段的*
)是多余/毫无意义的。语法很简单:
DELETE FROM yourtable
而且最重要的是,你是容易sql injection attacks,所以喜欢有你的服务器pwn3d。
你的代码可以SQL调入。至少,使用'$ id =(int)$ _ GET ['id'];'来防止一些。另外,尝试直接在数据库中运行DELETE语句并检查是否有任何错误消息。 –
DELETE上的RTM http://dev.mysql.com/doc/refman/5.7/en/delete.html你的是无效的,检查错误会引发你一些问题。 –