Много вопросов!
Управляет ли он открытием соединений?
шикарно
Да, когда вы запускаете первый запрос, создается соединение, и последующие запросы используют то же соединение. Это верно, если вы повторно используете того же адаптера Zend_Db. Я обычно делаю это доступным для всего моего приложения, используя Zend_Registry:
$db = Zend_Db::factory(...) // create Db instance
Zend_Registry::set('db', $db);
//in another class or file somewhere
$db = Zend_Registry::get('db');
$db->query(...)//run a query
Приведенный выше код обычно идет в вашем приложении bootstrap . Я бы не стал расширять класс Zend_Db только для инициализации и его экземпляра.
Относительно fetchRow - я считаю, что ключевое отличие состоит в том, что выполнение запроса ограничено 1 строкой, а возвращаемый объект является Zend_Db_Table_Row, а не Zend_Db_Table_Rowset (как массив строк) и не работает значительно медленнее. *
fetchRow должен быть в порядке, поэтому опубликуйте код, который не работает, так как, возможно, где-то есть ошибка.