php删除一条mysql记录 怎么判断是不是删除成功,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php删除一条mysql记录 怎么判断是不是删除成功,相关的知识,希望对你有一定的参考价值。

php删除一条mysql记录 怎么判断是否删除成功,因为我删除成功后,通过get方式再次手动提交同一id,也提示删除成功。 但是数据库明明已经没有了这条记录

判断返回值啊
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
可以去看下mysql_query()的介绍http://www.php.cn/wiki/1220.html,希望对你有帮助追问

但是我 手工 重复提交已经删除过的id值上去,依然提示成功,我打印过返回值 都是true 没有false 汗

追答

select * from table where id=你想删除的id,看看是不是还存在这条数据

追问

我是第一次删除成功后,突然想测试删除失败是不是可以走到删除失败哪一个else分之,所以手工再次提交 同一id, 结果还是删除成功,然后我后台打印返回的值 都是true 。

追答

你没有phphmyadmin之类的吗,查看下那条数据还在不在了,你返回true只能证明语句执行成功,并不能判断是不是影响了数据库

追问

有啊,我是确定删除了成功了,然后后台查到没有数据了,才会再次提交以删除id的值过去的, 在追问就要积分了。。我没有了 。。。。。。

追答

我删除一个不存在的id,sql语句也是执行成功的,只是他影响了0行,也就是没有对数据库有任何改动,但是还是返回了ture

如果你要判断id是不是存在,就要还加一个if条件语句,先select判断下id是不是存在,不存在就不执行删除操作,存在了才执行删除语句

用mysql_fetch_array()的时候,不要判断他返回true还是false,直接把里面的值循环出来看,可能它里面是空的情况下,执行成功也返回true,希望这样讲你能明白

参考技术A 你是用什么函数去删除的还是用封装的mysql对象的方法删除的,一般封装对象的方法删除有特殊的判断返回值,不过大多数删除的返回值就是bool值,表示删除成功追问

本来我是直接在if 中 写 mysql_query( ) 然后判断的,但是因为测试失败的情况发现 返回值一直是bool ture 所以 我用mysql_fetch_array() 取值出来看,结果还是ture

追答

mysql_query( ) 执行sql语句时分查询和非查询的,有查询时返回一个结果集然后遍历取出,没结果集的直接返回布尔值,有结果集的返回结果集,然后用mysql_fetch_array() 取值,你用的select语句,肯定是有结果集的

追问

我原来是 if(mysql_query()) 的 ,只是因为在确定数据已被删除后。我再次手工提交已删除id去,发现还是提示删除成功。我才会在页面修改, 通过打印mysql_query() 的值 永远为true。即使没有这条数据也返回true 所以我才会试图 mysql_fetch_array() 试图取出结果集 并且打印。但打印的还是true

MySQL中删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

SELECT
    *
FROM
    people
WHERE
    peopleId IN (
        SELECT
            peopleId
        FROM
            people
        GROUP BY
            peopleId
        HAVING
            count(peopleId) > 1
    )

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

DELETE
FROM
    people
WHERE
    peopleName IN (
        SELECT
            peopleName
        FROM
            people
        GROUP BY
            peopleName
        HAVING
            count(peopleName) > 1
    )
AND peopleId NOT IN (
    SELECT
        min(peopleId)
    FROM
        people
    GROUP BY
        peopleName
    HAVING
        count(peopleName) > 1
)

3、查找表中多余的重复记录(多个字段)

SELECT
    *
FROM
    vitae a
WHERE
    (a.peopleId, a.seq) IN (
        SELECT
            peopleId,
            seq
        FROM
            vitae
        GROUP BY
            peopleId,
            seq
        HAVING
            count(*) > 1
    )

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

DELETE
FROM
    vitae a
WHERE
    (a.peopleId, a.seq) IN (
        SELECT
            peopleId,
            seq
        FROM
            vitae
        GROUP BY
            peopleId,
            seq
        HAVING
            count(*) > 1
    )
AND rowid NOT IN (
    SELECT
        min(rowid)
    FROM
        vitae
    GROUP BY
        peopleId,
        seq
    HAVING
        count(*) > 1
)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

SELECT
    *
FROM
    vitae a
WHERE
    (a.peopleId, a.seq) IN (
        SELECT
            peopleId,
            seq
        FROM
            vitae
        GROUP BY
            peopleId,
            seq
        HAVING
            count(*) > 1
    )
AND rowid NOT IN (
    SELECT
        min(rowid)
    FROM
        vitae
    GROUP BY
        peopleId,
        seq
    HAVING
        count(*) > 1
)

6.消除一个字段的左边的第一位:

UPDATE tableName
SET [ Title ]= RIGHT ([ Title ],(len([ Title ]) - 1))
WHERE
    Title LIKE ‘村%‘

7.消除一个字段的右边的第一位:

UPDATE tableName
SET [ Title ]= LEFT ([ Title ],(len([ Title ]) - 1))
WHERE
    Title LIKE ‘%村‘

8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录

UPDATE vitae
SET ispass =- 1
WHERE
    peopleId IN (
        SELECT
            peopleId
        FROM
            vitae
        GROUP BY
            peopleId

 


以上是关于php删除一条mysql记录 怎么判断是不是删除成功,的主要内容,如果未能解决你的问题,请参考以下文章

PHP判断SQL数据

PHP操作MySQL,删除一行数据库,怎么写?

如何在数据库中查询出重复记录

PHP+mysql数据的添加修改删除

MySQL中删除重复数据只保留一条

MySQL删除重复数据只保留一条