MYSQL DELETE查询不影响行

时间:2014-03-09 20:06:15

标签: php mysql

这是我在php文件中的一个函数

function deleteLocation() {
        global $con;

        $val = $_POST['id'];
        $escaped = mysqli_real_escape_string($con,$val);

        $sql = "DELETE FROM settings WHERE value = '".$escaped."'";

        if(!mysqli_query($con,$sql)){
            die("Query failed:" . mysqli_error($con));
        } else {
            die("DELETE FROM settings WHERE value = '".$escaped."'    /    num rows affected: " . mysqli_affected_rows($con));
        }   
    }

以下是页面上返回的文字

DELETE FROM settings WHERE value = 'asdasd ' / num rows affected: 0

如果我采取第一部分,并在我的phpmyadmin页面上运行,

DELETE FROM settings WHERE value = 'asdasd '

它将正确删除该行,但正如您在输出中看到的那样,当在页面上运行脚本时会影响0行。

如果有人可以帮忙解决这个问题,我将非常感激。

PS:连接字符串和用户权限确实设置正确,因为此文件中的每个其他功能都能正常工作

编辑:知道了,字符串末尾的空格是从我的javascript发送的换行符。

2 个答案:

答案 0 :(得分:0)

我尝试在我的机器上重新创建您的问题,并且当我从表中删除该项目时(或者当它首先不在那里时)我唯一一次得到与您相同的消息

答案 1 :(得分:0)

这是一个非常独特的情况,所以我不知道这对其他人有多大帮助,但是,

我有一个字符串数组,最后都有\ n,所以我必须这样做

str[value] = str[value].trim(); 

数组中的foreach值。事实证明,这不是一个PHP问题,而是js