【问题标题】:Delete query is working but data is not deleted?删除查询正在工作,但数据没有被删除?
【发布时间】: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


【解决方案1】:

如果查询没有错误,则重定向有效,这并不意味着查询更改了任何内容。试试看:mysql_affected_rows()

您还应该使用$delete_id 变量吗?

【讨论】:

  • 是的,因为 $delete id 正在获取应该删除数据库上的哪个 id 号。
  • mysql_affected_rows() 告诉我没有删除任何记录。 ://
  • 我知道它不是......我只是想知道为什么当查询正确时它不能从表中删除行? :(请帮忙。
猜你喜欢
  • 2019-12-22
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-31
相关资源
最近更新 更多