我正在使用zend框架,我看到代码中使用的save()函数,想知道是否有办法在此后获取受影响的行以查看受影响的行数。
我检查了documentation,但没有多大帮助。有任何想法吗?感谢
答案 0 :(得分:3)
Zend_Db_Table_Row :: save()方法返回行的主键,如果您正在更新现有行,则返回当前主键;如果要保存新行,则返回新主键。
save()方法适用于一个行实例,因此@Evernoob表示它只应用于一行。但是当你保存时,它不一定会导致一行“受影响”。例如,如果我没有更改任何列值,并且我保存()一行,则受影响的行为零。在mysql shell中尝试这样的东西,你会看到它报告零行受影响。
UPDATE mytable SET column1 = column1 WHERE id = 1234; -- effectively a noop
Zend_Db_Statement有一个方法rowCount()
(模仿PDOStatement rowCount()
方法),但是这个信息没有通过Zend_Db_Table_Row接口浮出水面。
因此,如果您需要该信息,则必须使用Zend_Db_Adapter :: query()更新数据以创建Zend_Db_Statement对象。执行()语句后,可以在其上调用rowCount()。
答案 1 :(得分:1)
save()函数应用于该对象的实例,该对象与一行相关联。因此,您可以安全地假设在对象上调用save()只会影响其关联的一行。