如何验证与数据库模式有关的表单输入?

时间:2012-01-02 22:25:25

标签: php validation

在团队中开发更大的系统时,通常会有单独的人员来实现应用程序和数据库的东西。在这种情况下,数据库设计和实现首先出现:数据库开发人员使用一些建模工具设计和创建表。作为应用程序开发人员,您很想在应用程序代码中从头开始创建和添加规则。但是,您正在复制工作,因为实际的列类型和长度限制已在每个数据库表中设置。此外,如果数据库开发人员负责并且正在更新数据库,那么当您忘记更新应用程序端的规则时可能会出现错误。因此,您只需从现有数据库模式表中获取这些规则并“挂载”到输入验证(或模型)类。

所以,问题是是否有任何一般方法(和示例),库或框架显示应该如何完成。我看过具有规则的Codeigniter框架,但这些规则不是从现有数据库中捕获的,您需要明确定义它们。

PS。最优选的是简单(但足够)的解决方案,因为我已经使用了轻量级的类似Codeigniter的框架,我不想依赖重量级方法。

1 个答案:

答案 0 :(得分:1)

您可以尝试Zend_Db_Table_Abstract。虽然Zend框架需要一些初始设置,但您只能使用项目所需的部分(而不是其他一些PHP框架)。您可以使用describeTable()方法来发现有关表结构的内容,并且可以重载insert()函数以显式检查类型,或执行您需要的任何其他验证。

另一个潜在的选择是fSchema,这是蓬勃发展的图书馆的一部分。我过去曾经有过很好的经历。

两者都是模块化的,文档齐全且易于使用。