Zend Framework: выберите с привязкой параметров соединения и имени PDO.

Я использую Zend Framework и пытаюсь выполнить объединенный запрос, а также использовать привязку именованного параметра. Ссылка на два поста ниже. Когда я просто присоединяюсь, все работает. Когда я добавляю привязку имени, появляется эта ошибка:

Сообщение: SQLSTATE[HY093]: Недопустимый номер параметра: никакие параметры не были привязаны

Как выполнить объединенный запрос в таблицах ZF интерфейс?

Zend Framework : Как найти строку таблицы по значению указанного столбца?

Я уменьшил его, пытаясь удалить любые возможные ошибки, но он все еще получает ошибку и не знаю, почему.

$query = "country = :cc";  // changing :cc to 'US' everything works
$params = array(':cc' => 'US');

$db = $this->getDbTable();
$select = $db->select(Zend_Db_Table::SELECT_WITH_FROM_PART);

$select->setIntegrityCheck(false)
       ->join(array("daytable"), 'weektable.showid = daytable.id')
       ->where($query, $params);

$rowset = $db->fetchAll($select);

person Brandon    schedule 26.09.2011    source источник


Ответы (1)


Попробуй это:

->where('country = ?', 'US')

Привязка параметров к Zend_Db_Select

person Mike B    schedule 26.09.2011
comment
Да, это работает, и я пробовал это, но забыл добавить это к моему вопросу. Почему что-то подобное не делает -›where(day.dt МЕЖДУ ? И ?, array($today, $tomorrow)); //'2011-09-25 02:00:00' И '2011-09-26 18:00:00, но когда я добавляю строки в where, все работает нормально. - person Brandon; 26.09.2011
comment
Другой вопрос, почему использование метода ':variable' не работает? - person Brandon; 26.09.2011
comment
@Брэндон framework.zend.com/issues/browse/ZF-2211 - Нерешенные, они предлагают объединить предложения where. Я недостаточно знаю внутреннее устройство Zend_Db_Select, чтобы дать вам точный ответ, но у меня есть подозрение, что это потому, что Zend_Db не всегда использует адаптер PDO. framework.zend.com/manual/en/zend.db.adapter. html - person Mike B; 26.09.2011