fetchRow、fetchAllどちらもDBから行を取得するメソッドです。
相違点は以下
fetchRow
1. 単一の行を取得
2. 返り値の型は、Zend_Db_Table_Row
3. 0件取得の場合は、nullを返却
fetchAll
1. 複数の行を取得
2. 返り値の型は、Zend_Db_Table_Rowset
3. 0件取得の場合は、Zend_Db_Table_Rowsetを返却
注目するところは、3です。
fetchAllは、0件でもZend_Db_Table_Rowsetを返却します。
なので、取得の有無で、nullかどうかでは判定できません。
私はどちらもnullが返ってくると勘違いしていたので、ミスりました。