我在框架外部使用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"
}
答案 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.