> 백엔드 개발 > PHP 튜토리얼 > MySQL更新数据之前是否判断数据有没有被修改

MySQL更新数据之前是否判断数据有没有被修改

WBOY
풀어 주다: 2016-06-23 13:35:31
원래의
1868명이 탐색했습니다.

MySql{MyPhpAdmin}里执行一条更新语句:
update tableA set a=1 where id=2
如果a原来的值就是1,MySql就直接返回了“影响了0行” 。
如果a原来的值不会1,就会返回“影响了1行”;
难道MySql在执行update语句之前还拿新值和旧值比较,如果有修改才修改之,没有修改的话,也就不执行update语句了吗?

还有PHP里面
执行mysql->query();语句的话,如果语句本身没有错误,就直接返回true。我执行update ,如果语法正确,条件错误,query直接返回true。
如果用mysql->affected_rows 判断的话,就会出现上面mysql里面讲的问题:语句正确,条件正确,就是没有修改数据,返回0行。这样我如何知道我的update语句真正的执行成功,影响到具体的数据。


回复讨论(解决方案)

看着就纠结。。
必须要知道语句是否正确,这条数据是否存在,update之后是否被修改。
我觉得要先select一下才能满足你的所有需求。

看着就纠结。。
必须要知道语句是否正确,这条数据是否存在,update之后是否被修改。
我觉得要先select一下才能满足你的所有需求。



数据肯定存在的,语句肯定正确,注释MySql返回值有问题





--珍爱生命,远离MySql

这样我如何知道我的update语句真正的执行成功,
-- 返回true就表示成功了

影响到具体的数据。
mysql->affected_rows

是不是可以加一个记录修改时间的字段,这样在没有修改其他内容的情况下,影响到的行数就不是0了

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿