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,希望这样讲你能明白
本来我是直接在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记录 怎么判断是不是删除成功,的主要内容,如果未能解决你的问题,请参考以下文章