После обновления с Zend 1.12.1
по номеру 1.12.3
и поверением x_debug on
и изготовлением OLD_PASSWORD
default
.Исключение Zend_Db PDO возникает при представлении mySQL?
Я перезапускать программу, которая используется для запуска и легко, и теперь он имеет фатальную PDOException
, ниже:
Ошибка:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'place_fcb.userid' in 'group statement'
Actual SQl Запрос:
SELECT `C`.*
FROM (SELECT `place_fcb`.* FROM `place_fcb`)
AS `C`
WHERE (place_type_id != '176')
GROUP BY place_fcb.userid
HAVING (place_fcb.pda >= '2009-12-21')
AND (place_fcb.pda <= '2010-01-20')
Zend_Db_Table_Abstract :
public function getPlacefcb($start_date = '', $end_date = '', $r_id = '')
{
$sub_sql = $this->select()->from('place_fcb');
$select = $this->select()
->setIntegrityCheck(false)
->from(array('C' => new Zend_Db_Expr('('.$sub_sql.')')))
->where("place_type_id != '176'")
->group('place_fcb.userid');
if($start_date != '')
$select->having('`place_fcb`.`pda` >= ?', $start_date);
if($end_date != '')
$select->having('`place_fcb`.`pda` <= ?', $end_date);
if($region_id != '')
$select->having('`place_fcb`.`r_id` = ?', $r_id);
return $rowset = $this->fetchAll($select);
}
MySQL of place_fcb:
place_fcb - это ПРОСМОТР, а не таблица. Он имеет следующие соответствующие поля
place_id
r_id
place_type_id
pda
userid
я могу удалить исключение и возвращать те же результаты, изменяя заявление Sql для:
SELECT `C`.*
FROM (SELECT `place_fcb`.* FROM `place_fcb`)
AS `C`
WHERE (place_type_id != '176')
GROUP BY userid
HAVING (pda >= '2009-12-21')
AND (pda <= '2010-01-20')
т.е.. удалив все суффиксы таблицы ...
но как я могу исправить это с помощью Zend? и почему это происходит неправильно?
не
Вы совершенно правы и на производственной версии, которую использовали: '-> from (array ('place_fcb' => новый Zend_Db_Expr ('('. $ Sub_sql. ')')))' ..... Было бы лучше всего изменить это на просто '-> from (place_fcb)' – surfer190
@StevieG: до тех пор, пока подзапрос останется неизменным, я бы действительно полностью его удалил и заменил. – eggyal