Zend Queue DB异常

时间:2012-08-20 16:35:16

标签: zend-framework zend-db zend-queue

我在框架外部使用Zend_Queue和DB适配器,我有以下代码:

<?php

set_include_path(implode(PATH_SEPARATOR, array(
    realpath('../libs'),
    get_include_path(),
)));

require_once('Zend/Queue/Adapter/Db.php');

$options = array(
    'options' => array(
        'name' => 'myqueue',
        // use Zend_Db_Select for update, not all databases can support this
        // feature.
        Zend_Db_Select::FOR_UPDATE => true
    ),
    'driverOptions' => array(
        'host'      => 'localhost',
        'username'  => 'root',
        'password'  => 'password',
        'dbname'    => 'mydb',
        'type'      => 'pdo_mysql',
    )
);

// Create a database queue.
$queue = new Zend_Queue('Db', $options);

$queue->send('test');

我在'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound'

中得到Zend\Db\Statement\Pdo.php:228

任何想法我做错了什么?

$ params和声明是:

array(0) {
}
object(PDOStatement)#11 (1) {
  ["queryString"]=>
  string(67) "SELECT `queue`.`queue_id` FROM `queue` WHERE (queue_name=?) LIMIT 1"
}

1 个答案:

答案 0 :(得分:0)

事实证明currentQueue未设置。您可以使用以下方式设置:

$queue->setOption($queue::NAME, 'your_queue_name');

来自Zend / Queue.php,在getName()方法的文档块中......

 * Note: _setName() used to exist, but it caused confusion with createQueue
 * Will evaluate later to see if we should add it back in.