Zend_Db_Statement

dfilatov

Новичок
Zend_Db_Statement

Переехал тут на Zend_Db.
Как в Zend_Db_Statement добраться до sql-строки запроса? Чтобы при ошибке показать текст запроса. Метод errorInfo() возвращает только небольшой кусок запроса с ошибкой.
Раньше в PDO можно было добраться через ->queryString. Посмотрел в интерфейс Zend_Db_Statement_Interface - ничего вроде нет по этому поводу.
 

AmdY

Пью пиво
Команда форума
try {......}
catch (Zend_Exception $e) {
echo $e->getMessage());
}
а это не помогает?
 

dfilatov

Новичок
Нет, он возвращает тот же небольшой кусок запроса, что и errorInfo(), где непосредственно произошла ошибка, а не весь запрос.
 

Amen

Новичок
PHP:
//Прямой запрос
$sql = $db->quoteInto(
    'SELECT * FROM example WHERE date > ?',
    '2006-01-01'
);
$result = $db->query($sql);


//Zend_Db_Select
// тут чтоб просмотреть запрос можно __toString()
$select = $db->select()
    ->from(array('p' => 'products'),
        array('product_id'))
    ->join(array('l' => 'line_items'),
        'p.product_id = l.product_id',
        array('line_items_per_product' => 'COUNT(*)'))
    ->group('p.product_id')
    ->having('line_items_per_product > 10');
$stmt = $select->query();
$result = $stmt->fetchAll();

//Zend_Db_Statement
//У этого класса нет ничего типа __toString(), собсна потому 
//что нет необходимости  строка запроса и так читабельна
$stmt = $db->query('SELECT * FROM bugs');
$rows = $stmt->fetchAll();
 

AmdY

Пью пиво
Команда форума
Amen, а это собственно к чему было?
кстати, последнюю $rows замени на $result, для единообразия кода, а многострочные комменты бери в ///** */, чтобы фолдинг работал нормально.
 

Amen

Новичок
AmdY

А это как добираться до строки запросов в различных методах в Зенде
 
Сверху