我怎么会忽略让Zend_DB save()尝试填写创建的列?对于某个型号,我不需要该列。
答案 0 :(得分:1)
不要发送数据。 save()
是Zend_Db_Table_Row
api的一部分,旨在将数据保存到行中的方式有点智能。它将根据需要执行行的插入或更新。
save()
也只会更新其拥有数据的列。如果您没有为创建的列发送新数据save()
,则不会覆盖数据。
当有可能时,我让我正在使用的数据库创建并更新用于创建和更新的列。这样我就可以查询是否有需要的信息,但是我不需要用PHP来做我的数据库可以做得更好的事情。
答案 1 :(得分:0)
查看http://framework.zend.com/manual/1.12/en/zend.db.table.html“高级用法”部分。
对于更具体和优化的请求,您可能希望限制 行或行集中返回的列数。这可以通过以下方式实现 将FROM子句传递给select对象。第一个论点 FROM子句与Zend_Db_Select对象的子句相同 另外能够传递Zend_Db_Table_Abstract的实例 并让它自动确定表名。
重要强>
行集包含仍然“有效”的行 - 它们只包含 表的一列子集。如果在a上调用save()方法 部分行然后只修改可用字段。
因此,如果您调用了update(),我认为这就像取消您不想触摸的列的值一样简单。当然,需要遵守数据库约束 - 即列应该允许空值。