0

フレームワーク外の DB アダプターで Zend_Queue を使用しています。次のコードがあります。

<?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"
}
4

1 に答える 1

0

currentQueueが設定されていないことがわかりました。これは、次を使用して設定できます。

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

Zend / Queue.phpから、getName()メソッドのdocブロックで...

 * Note: _setName() used to exist, but it caused confusion with createQueue
 * Will evaluate later to see if we should add it back in.
于 2012-08-20T20:08:14.010 に答える