Php Zend Framework:使用join和PDO name参数绑定进行选择

Php Zend Framework:使用join和PDO name参数绑定进行选择,php,mysql,zend-framework,pdo,zend-db-table,Php,Mysql,Zend Framework,Pdo,Zend Db Table,我正在使用Zend框架,并一直在尝试执行一个联合查询,同时还使用命名参数绑定。参考以下两个员额。当我做连接时,一切都正常。当我添加名称绑定时,它会出现以下错误: 消息:SQLSTATE[HY093]:参数编号无效:未找到任何参数 束缚 我已经缩小了它的规模,试图消除任何可能的错误,但它仍然得到错误,不知道为什么 $query = "country = :cc"; // changing :cc to 'US' everything works $params = array(':cc' =

我正在使用Zend框架,并一直在尝试执行一个联合查询,同时还使用命名参数绑定。参考以下两个员额。当我做连接时,一切都正常。当我添加名称绑定时,它会出现以下错误:

消息:SQLSTATE[HY093]:参数编号无效:未找到任何参数 束缚

我已经缩小了它的规模,试图消除任何可能的错误,但它仍然得到错误,不知道为什么

$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);
试试这个:

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

是的,这确实有效,我尝试过,但忘了将其添加到我的问题中。为什么像这样的东西不->在哪里(“day.dt在?和之间?”,数组($today,$明天));//2011-09-25 02:00:00'和'2011-09-26 18:00:00'但是当我将字符串添加到where中时,它工作得很好。另一个问题是为什么使用“:variable”方法不起作用?@Brandon-未解决,他们建议将where子句配对。我对Zend_Db_Select的内部结构了解不够,无法给出一个绝对的答案,但我有一种预感,这是因为Zend_Db并不总是使用PDO适配器。
$query = "country = ?";  // changing :cc to 'US' everything works
$param = '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, $param);

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