【发布时间】:2014-04-03 18:45:19
【问题描述】:
为什么我的删除查询没有从数据库中删除数据?
这是代码:
<?php
include ("includes/database.php");
session_start();
if(!$_SESSION['username']){
header('location:index.php?error=You are not an administrator');
}else{
$delete_id=$_GET['id'];
$user=$_SESSION['username'];
$delete='delete from `wall` where `ID`="'.$delete_id.'" AND `User_id`="'.$user.'" ';
$Query=mysql_query($delete) or die (mysql_error());
if ($Query){
header('location:User_page.php');
}
}
?>
查询正常,因为我重定向到User_page.php,但数据库中的数据没有被删除。
【问题讨论】:
-
您将
User_id与$user中的用户名进行比较? -
如果您
echo $delete;忽略重定向会怎样?在这样的情况下,这就是调试 101:确保查询符合您的预期。 -
可爱的SQL injection attack。享受您的服务器 pwn3d。
-
如果查询有效,它不会返回 false,即使它没有“做”任何事情。 1)将“delete from”更改为“select * from”并检查它是否找到任何东西。 (它不会因为它没有删除) 2)检查 mysql_affected_rows() > 0 看是否有任何变化。
-
非常有建设性的评论马克。恭喜你的“帮助”
标签: php database row-removal