我使用pdo的exec更新数据,得到了受影响的行数
但是有问题。 如果update数据像原始数据一样返回0
这样就无法判断是由该数据的更新引起的,还是由未更新为数据引起的
必须再次在查询语句中确认
有更简单的解决方法吗? (假设使用pdo,php的方法似乎可以恢复到修改状态。)
回复讨论(解决方案)
与其询问一次进行确认,不如直接更新
更新失败时,会发生错误
所以你应该经常检查PDO :3360错误代码的返回值
PDO:exec返回0表示操作成功,但没有实际操作
更新失败时,会发生错误
所以你应该经常检查PDO :3360错误代码的返回值
PDO:exec返回0表示操作成功,但没有实际操作
exec返回三种状态,更新为数据时返回影响行数,未更新数据时返回0,出现错误时返回false ()
前两个状态错误代码返回00000,完全无法判断
更坦率地说我的问题
`用户`数据库
id密码
1 boy
更新`用户`设置`密码`=' boy ' where ` id `='1';
exec返回0,错误代码返回00000
这样直接告诉用户设定失败的话一定不好
我选择`密码`来自`用户` where ` id `='1';
如果password=='boy '设置成功,其他情况设置将失败
诶! 那么久没人回答我了!
我自己想了办法。 将更新时间字段添加到表中,并设置为每次更新时的时间
由此,区分更新表中没有记录时的返回和修改相同数据时的返回都为0,需要验证查询
这是一种呆板的方法,似乎是目前最简单的
本文原创发布了php中文网。 转载请注明出处。 谢谢您的尊重。