想象一下……我在数据库中有一个名为“current_round”的字段。这可能只在 0,1,2,3 范围内。
通过应用逻辑,不可能将大于3或小于0的数取到数据库中。
是否应该进行错误检查以查看值是否格式错误(即不在 0-3 范围内)?或者这只是不必要的开销?是否可以假设数据库中的值格式正确/范围正确等(假设您正确处理/评估所有用户输入?)
最佳答案
我通常不会验证数据库中的所有数据。相反,我尝试对数据库施加约束。在您的情况下,根据 0、1、2、3 的含义,我可能会使用带有外键约束的查找表,或者如果它们只是数值,我可能会使用检查约束(与下一个数据库供应商不同)。
这有助于防止具有直接访问权限的人和/或可能使用相同数据库但不共享您的输入验证过程的 future 应用程序对数据库进行更改。
关于php - PHP 应用程序是否应该对不正确的数据库值执行错误处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/660784/